twisted.protocols.smtp.SMTP.html [plain text]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>twisted.protocols.smtp.SMTP</title>
<link rel="stylesheet" href="epydoc.css" type="text/css"></link>
</head>
<body bgcolor="white" text="black" link="blue" vlink="#204080"
alink="#204080">
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
<tr valign="top">
<td width="100%">
<font size="-1"><b class="breadcrumbs">
<a href="twisted.html">Package twisted</a> ::
<a href="twisted.protocols.html">Package protocols</a> ::
<a href="twisted.protocols.smtp.html">Module smtp</a> ::
Class SMTP
</b></font></br>
</td>
<td><table cellpadding="0" cellspacing="0">
<tr><td align="right"><font size="-2">[<a href="frames.html"target="_top">frames</a> | <a href="twisted.protocols.smtp.SMTP.html" target="_top">no frames</a>]</font></td></tr>
</table></td>
</tr></table>
<!-- =========== START OF CLASS DESCRIPTION =========== -->
<h2 class="class">Class SMTP</h2>
<pre class="base-tree">
<a href="twisted.internet.protocol.BaseProtocol.html"><code>BaseProtocol</code></a> --+
|
<a href="twisted.internet.protocol.Protocol.html"><code>Protocol</code></a> --+
|
<a href="twisted.protocols.basic.LineReceiver.html"><code>LineReceiver</code></a> --+
|
<a href="twisted.protocols.policies.TimeoutMixin.html"><code>TimeoutMixin</code></a> --+
|
<b>SMTP</b>
</pre><br />
<dl><dt><b>Known Subclasses:</b></dt>
<dd>
<a href="twisted.mail.protocols.DomainSMTP.html"><code>DomainSMTP</code></a>,
<a href="twisted.protocols.smtp.ESMTP.html"><code>ESMTP</code></a></dd></dl>
<hr/>
SMTP server-side protocol.
<hr/>
<!-- =========== START OF METHOD SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Method Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="__init__"></a><span class="summary-sig"><span class="summary-sig-name">__init__</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>delivery</span>,
<span class=summary-sig-arg>deliveryFactory</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbAuthenticated"></a><span class="summary-sig"><span class="summary-sig-name">_cbAuthenticated</span>(<span class=summary-sig-arg>self</span>,
(<span class=summary-sig-arg>iface</span>,
<span class=summary-sig-arg>avatar</span>,
<span class=summary-sig-arg>logout</span>))</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbFromValidate"></a><span class="summary-sig"><span class="summary-sig-name">_cbFromValidate</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>from_</span>,
<span class=summary-sig-arg>code</span>,
<span class=summary-sig-arg>msg</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_cbToValidate"></a><span class="summary-sig"><span class="summary-sig-name">_cbToValidate</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>to</span>,
<span class=summary-sig-arg>user</span>,
<span class=summary-sig-arg>code</span>,
<span class=summary-sig-arg>msg</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_ebAuthenticated"></a><span class="summary-sig"><span class="summary-sig-name">_ebAuthenticated</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>reason</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_ebFromValidate"></a><span class="summary-sig"><span class="summary-sig-name">_ebFromValidate</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>failure</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_ebToValidate"></a><span class="summary-sig"><span class="summary-sig-name">_ebToValidate</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>failure</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_messageHandled"></a><span class="summary-sig"><span class="summary-sig-name">_messageHandled</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>_</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="_messageNotHandled"></a><span class="summary-sig"><span class="summary-sig-name">_messageNotHandled</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>failure</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="connectionLost"></a><span class="summary-sig"><span class="summary-sig-name">connectionLost</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>reason</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#connectionMade" class="summary-sig-name"><code>connectionMade</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when a connection is made.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="dataLineReceived"></a><span class="summary-sig"><span class="summary-sig-name">dataLineReceived</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_DATA"></a><span class="summary-sig"><span class="summary-sig-name">do_DATA</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_HELO"></a><span class="summary-sig"><span class="summary-sig-name">do_HELO</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_MAIL"></a><span class="summary-sig"><span class="summary-sig-name">do_MAIL</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_QUIT"></a><span class="summary-sig"><span class="summary-sig-name">do_QUIT</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_RCPT"></a><span class="summary-sig"><span class="summary-sig-name">do_RCPT</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_RSET"></a><span class="summary-sig"><span class="summary-sig-name">do_RSET</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="do_UNKNOWN"></a><span class="summary-sig"><span class="summary-sig-name">do_UNKNOWN</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>rest</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="greeting"></a><span class="summary-sig"><span class="summary-sig-name">greeting</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#lineLengthExceeded" class="summary-sig-name"><code>lineLengthExceeded</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
<br />
Called when the maximum line length has been reached.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#lineReceived" class="summary-sig-name"><code>lineReceived</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
<br />
Override this for when each line is received.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="lookupMethod"></a><span class="summary-sig"><span class="summary-sig-name">lookupMethod</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>command</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#rawDataReceived" class="summary-sig-name"><code>rawDataReceived</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>data</span>)</span></code>
<br />
Throw away rest of long line</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#sendCode" class="summary-sig-name"><code>sendCode</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>code</span>,
<span class=summary-sig-arg>message</span>)</span></code>
<br />
Send an SMTP code with a message.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="sendSyntaxError"></a><span class="summary-sig"><span class="summary-sig-name">sendSyntaxError</span>(<span class=summary-sig-arg>self</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="startMessage"></a><span class="summary-sig"><span class="summary-sig-name">startMessage</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>recipients</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="state_COMMAND"></a><span class="summary-sig"><span class="summary-sig-name">state_COMMAND</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><a name="dataLineReceived"></a><span class="summary-sig"><span class="summary-sig-name">state_DATA</span>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#timeoutConnection" class="summary-sig-name"><code>timeoutConnection</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Called when the connection times out.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> <code>Deferred</code> or <code>Address</code>
</font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#validateFrom" class="summary-sig-name"><code>validateFrom</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>helo</span>,
<span class=summary-sig-arg>origin</span>)</span></code>
<br />
Validate the address from which the message originates.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> no-argument callable
</font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.smtp.SMTP.html#validateTo" class="summary-sig-name"><code>validateTo</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>user</span>)</span></code>
<br />
Validate the address for which the message is destined.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from LineReceiver</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#clearLineBuffer" class="summary-sig-name"><code>clearLineBuffer</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Clear buffered data.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#dataReceived" class="summary-sig-name"><code>dataReceived</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>data</span>)</span></code>
<br />
Protocol.dataReceived.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#sendLine" class="summary-sig-name"><code>sendLine</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>line</span>)</span></code>
<br />
Sends a line to the other end of the connection.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#setLineMode" class="summary-sig-name"><code>setLineMode</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>extra</span>)</span></code>
<br />
Sets the line-mode of this receiver.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.basic.LineReceiver.html#setRawMode" class="summary-sig-name"><code>setRawMode</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Sets the raw mode of this receiver.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.Protocol.html#connectionFailed" class="summary-sig-name"><code>connectionFailed</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
(Deprecated)</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.internet.protocol.BaseProtocol.html#makeConnection" class="summary-sig-name"><code>makeConnection</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>transport</span>)</span></code>
<br />
Make a connection to a transport and a server.</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from TimeoutMixin</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.policies.TimeoutMixin.html#resetTimeout" class="summary-sig-name"><code>resetTimeout</code></a>(<span class=summary-sig-arg>self</span>)</span></code>
<br />
Reset the timeout count down</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"> </font></td>
<td><code><span class="summary-sig"><a href="twisted.protocols.policies.TimeoutMixin.html#setTimeout" class="summary-sig-name"><code>setTimeout</code></a>(<span class=summary-sig-arg>self</span>,
<span class=summary-sig-arg>period</span>)</span></code>
<br />
Change the timeout period</td></tr>
</table><br />
<!-- =========== START OF CLASS VARIABLE SUMMARY =========== -->
<table class="summary" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="summary">
<th colspan="2">Class Variable Summary</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#_onLogout"><code>_onLogout</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#delivery"><code>delivery</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#deliveryFactory"><code>deliveryFactory</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#host"><code>host</code></a></b> = <span title="'twistedmatrix.com'"><code><span class="variable-quote">'</span>twistedmatrix.com<span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>SRE_Pattern</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#mail_re"><code>mail_re</code></a></b> = <span title="<_sre.SRE_Pattern object at 0x84d1590>"><code><span class="re"><span class="re-char">\s</span><span class="re-op">*</span>FROM:<span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(</span><><span class="re-op">|</span><<span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#portal"><code>portal</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#qstring"><code>qstring</code></a></b> = <span title="'("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|}~]|[@.,:])+'"><code><span class="variable-quote">'</span>("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>SRE_Pattern</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#rcpt_re"><code>rcpt_re</code></a></b> = <span title="<_sre.SRE_Pattern object at 0x85db8c8>"><code><span class="re"><span class="re-char">\s</span><span class="re-op">*</span>TO:<span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(</span><<span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&'<span class="re-char">\*</span><span class="re-char">\+<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.smtp.SMTP.html#timeout"><code>timeout</code></a></b> = <span title="600">600 </span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from LineReceiver</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#__buffer"><code>_LineReceiver__buffer</code></a></b> = <span title="''"><code><span class="variable-quote">'</span><span class="variable-quote">'</span> </code>
</span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>str</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#delimiter"><code>delimiter</code></a></b>: The line-ending delimiter to use.</td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#line_mode"><code>line_mode</code></a></b> = <span title="1">1 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.protocols.basic.LineReceiver.html#MAX_LENGTH"><code>MAX_LENGTH</code></a></b>: The maximum length of a line to allow (If a sent line is longer than
this, the connection is dropped).</td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from Protocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>tuple</code></font></td>
<td><b><a href="twisted.internet.protocol.Protocol.html#__implements__"><code>__implements__</code></a></b> = <span title="(<class twisted.internet.interfaces.IProtocol at 0x8278f0c>,)"><code>(<class twisted.internet.interfaces.IPr<span class="variable-ellipsis">...</span></code>
</span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from BaseProtocol</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>int</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#connected"><code>connected</code></a></b> = <span title="0">0 </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.internet.protocol.BaseProtocol.html#transport"><code>transport</code></a></b> = <span title="None">None </span></td></tr>
<tr bgcolor="#e8f0f8" class="group">
<th colspan="2"> Inherited from TimeoutMixin</th></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.policies.TimeoutMixin.html#__lastReceived"><code>_TimeoutMixin__lastReceived</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.policies.TimeoutMixin.html#__timeoutCall"><code>_TimeoutMixin__timeoutCall</code></a></b> = <span title="None">None </span></td></tr>
<tr><td align="right" valign="top" width="15%"><font size="-1"><code>NoneType</code></font></td>
<td><b><a href="twisted.protocols.policies.TimeoutMixin.html#timeOut"><code>timeOut</code></a></b>: The number of seconds after which to timeout the connection.</td></tr>
</table><br />
<!-- =========== START OF METHOD DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Method Details</th></tr>
</table>
<a name="connectionMade"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">connectionMade</span>(<span class=sig-arg>self</span>)</span>
</h3>
<p>Called when a connection is made.</p>
This may be considered the initializer of the protocol, because it
is called when the connection is completed. For clients, this is called
once the connection to the server has been established; for servers,
this is called after an accept() call stops blocking and a socket has
been received. If you need to send any greeting or initial message, do
it here.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.internet.protocol.BaseProtocol.html#connectionMade"><code>twisted.internet.protocol.BaseProtocol.connectionMade</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="lineLengthExceeded"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">lineLengthExceeded</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>line</span>)</span>
</h3>
Called when the maximum line length has been reached. Override if it
needs to be dealt with in some special way.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.protocols.basic.LineReceiver.html#lineLengthExceeded"><code>twisted.protocols.basic.LineReceiver.lineLengthExceeded</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="lineReceived"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">lineReceived</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>line</span>)</span>
</h3>
Override this for when each line is received.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.protocols.basic.LineReceiver.html#lineReceived"><code>twisted.protocols.basic.LineReceiver.lineReceived</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="rawDataReceived"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">rawDataReceived</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>data</span>)</span>
</h3>
Throw away rest of long line
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.protocols.basic.LineReceiver.html#rawDataReceived"><code>twisted.protocols.basic.LineReceiver.rawDataReceived</code></a></dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="sendCode"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">sendCode</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>code</span>,
<span class=sig-arg>message</span>=<span class=sig-default>''</span>)</span>
</h3>
Send an SMTP code with a message.
<dl><dt></dt><dd>
</dd></dl>
</td></tr></table>
<a name="timeoutConnection"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">timeoutConnection</span>(<span class=sig-arg>self</span>)</span>
</h3>
Called when the connection times out. Override to define behavior
other than dropping the connection.
<dl><dt></dt><dd>
<dl><dt><b>Overrides:</b></dt>
<dd><a href="twisted.protocols.policies.TimeoutMixin.html#timeoutConnection"><code>twisted.protocols.policies.TimeoutMixin.timeoutConnection</code></a> <i>(inherited documentation)</i>
</dd>
</dl>
</dd></dl>
</td></tr></table>
<a name="validateFrom"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">validateFrom</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>helo</span>,
<span class=sig-arg>origin</span>)</span>
</h3>
Validate the address from which the message originates.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>helo</b></code> -
The argument to the HELO command and the client's IP
address.
<br /><i>
(type=<code>(str, str)</code>)</i>
<dd><code><b>origin</b></code> -
The address the message is from
<br /><i>
(type=<code>Address</code>)</i>
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
<code>origin</code> or a <code>Deferred</code> whose callback
will be passed <code>origin</code>.
<br /><i>
(type=<code>Deferred</code> or <code>Address</code>)</i>
</dd>
</dl>
<dl><dt><b>Raises:</b></dt>
<dd><code><b>SMTPBadSender</b></code> -
Raised of messages from this address are not to be
accepted.
</dl>
</dd></dl>
</td></tr></table>
<a name="validateTo"></a>
<table width="100%" class="func-details" bgcolor="#e0e0e0"><tr><td>
<h3><span class="sig"><span class="sig-name">validateTo</span>(<span class=sig-arg>self</span>,
<span class=sig-arg>user</span>)</span>
</h3>
Validate the address for which the message is destined.
<dl><dt></dt><dd>
<dl><dt><b>Parameters:</b></dt>
<dd><code><b>user</b></code> -
The address to validate.
<br /><i>
(type=<code>User</code>)</i>
</dd>
</dl>
<dl><dt><b>Returns:</b></dt>
<dd>
A <code>Deferred</code> which becomes, or a callable which
takes no arguments and returns an object implementing
<code>IMessage</code>. This will be called and the returned
object used to deliver the message when it arrives.
<br /><i>
(type=no-argument callable)</i>
</dd>
</dl>
<dl><dt><b>Raises:</b></dt>
<dd><code><b>SMTPBadRcpt</b></code> -
Raised if messages to the address are not to be accepted.
</dl>
</dd></dl>
</td></tr></table>
<br />
<!-- =========== START OF CLASS VARIABLE DETAILS =========== -->
<table class="details" border="1" cellpadding="3" cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="details">
<th colspan="2">Class Variable Details</th></tr>
</table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="_onLogout"></a>
<h3>_onLogout</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="delivery"></a>
<h3>delivery</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="deliveryFactory"></a>
<h3>deliveryFactory</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="host"></a>
<h3>host</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'twistedmatrix.com'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>twistedmatrix.com<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="mail_re"></a>
<h3>mail_re</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>SRE_Pattern</code>
</dd>
<span title="<_sre.SRE_Pattern object at 0x84d1590>"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="re"><span class="re-char">\s</span><span class="re-op">*</span>FROM:<span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(</span><><span class="re-op">|</span><<span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&'<span class="re-char">\*</span><span class="re-char">\+</span>/=<span class="re-char">\?</span><span class="re-char">\^</span>_`<span class="re-char">\{</span><span class="re-char">\|</span><span class="re-char">\}</span>~<span class="re-group">]</span><span class="re-op">|</span><span class="re-group">[</span>@<span class="variable-linewrap">\</span>
<span class="re-char">\.</span>,:<span class="re-group">]</span><span class="re-group">)</span><span class="re-op">+</span>><span class="re-op">|</span><span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&'<span class="re-char">\*</span><span class="re-char">\+</span>/=<span class="re-char">\?</span><span class="re-char">\^</span>_`<span class="re-char">\{</span><span class="re-char">\|</span><span class="re-char">\}</span>~<span class="re-group">]</span><span class="re-op">|</span><span class="re-group">[</span>@<span class="re-char">\.</span>,:<span class="re-group">]</span><span class="re-group">)</span><span class="re-op">+<span class="variable-linewrap">\</span>
</span><span class="re-group">)</span><span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(</span><span class="re-char">\s</span><span class="re-group">(</span><span class="re-char">.</span><span class="re-op">*</span><span class="re-group">)</span><span class="re-group">)</span><span class="re-op">?</span><span class="re-char">$</span></span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="portal"></a>
<h3>portal</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>NoneType</code>
</dd>
<span title="None"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
None </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="qstring"></a>
<h3>qstring</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>str</code>
</dd>
<span title="'("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|}~]|[@.,:])+'"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="variable-quote">'</span>("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|}~]|[@.,:])+<span class="variable-quote">'</span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="rcpt_re"></a>
<h3>rcpt_re</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>SRE_Pattern</code>
</dd>
<span title="<_sre.SRE_Pattern object at 0x85db8c8>"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
<span class="re"><span class="re-char">\s</span><span class="re-op">*</span>TO:<span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(</span><<span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&'<span class="re-char">\*</span><span class="re-char">\+</span>/=<span class="re-char">\?</span><span class="re-char">\^</span>_`<span class="re-char">\{</span><span class="re-char">\|</span><span class="re-char">\}</span>~<span class="re-group">]</span><span class="re-op">|</span><span class="re-group">[</span>@<span class="re-char">\.</span>,:<span class="re-group">]<span class="variable-linewrap">\</span>
</span><span class="re-group">)</span><span class="re-op">+</span>><span class="re-op">|</span><span class="re-group">(</span>"<span class="re-group">[^</span>"<span class="re-group">]</span><span class="re-op">*</span>"<span class="re-op">|</span><span class="re-char">\\</span><span class="re-char">.</span><span class="re-op">|</span><span class="re-group">[</span>-A<span class="re-group">-</span>Za<span class="re-group">-</span>z0<span class="re-group">-</span>9!#<span class="re-char">\$</span>%&'<span class="re-char">\*</span><span class="re-char">\+</span>/=<span class="re-char">\?</span><span class="re-char">\^</span>_`<span class="re-char">\{</span><span class="re-char">\|</span><span class="re-char">\}</span>~<span class="re-group">]</span><span class="re-op">|</span><span class="re-group">[</span>@<span class="re-char">\.</span>,:<span class="re-group">]</span><span class="re-group">)</span><span class="re-op">+</span><span class="re-group">)</span><span class="re-char">\s</span><span class="re-op">*</span><span class="re-group">(<span class="variable-linewrap">\</span>
</span><span class="re-char">\s</span><span class="re-group">(</span><span class="re-char">.</span><span class="re-op">*</span><span class="re-group">)</span><span class="re-group">)</span><span class="re-op">?</span><span class="re-char">$</span></span> </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<table width="100%" class="var-details" bgcolor="#e0e0e0"><tr><td>
<a name="timeout"></a>
<h3>timeout</h3>
<dl>
<dt></dt>
<dd>
<dl>
<dt><b>Type:</b></dt>
<dd>
<code>int</code>
</dd>
<span title="600"> <dt><b>Value:</b></dt>
<dd><table><tr><td>
<pre class="variable">
600 </pre>
</td></tr></table></dd>
</span> </dl>
</dd>
</dl></td></tr></table>
<br />
<!-- =========== START OF NAVBAR =========== -->
<table class="navbar" border="0" width="100%" cellpadding="0" bgcolor="#a0c0ff" cellspacing="0">
<tr valign="center">
<th class="navbar"> <a class="navbar" href="twisted.html">Home</a> </th>
<th class="navbar"> <a class="navbar" href="trees.html">Trees</a> </th>
<th class="navbar"> <a class="navbar" href="indices.html">Index</a> </th>
<th class="navbar"> <a class="navbar" href="help.html">Help</a> </th>
<th class="navbar" align="right" width="100%">
<table border="0" cellpadding="0" cellspacing="0">
<tr><th class="navbar" align="center">
<p class="nomargin">
<a class="navbar" target="_top" href="http://twistedmatrix.com/">Twisted 1.3.0rc1</a>
</p></th></tr></table>
</th>
</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="left"><font size="-2">Generated by Epydoc 2.0 on Sat May 15 20:08:01 2004</font></td>
<td align="right"><a href="http://epydoc.sourceforge.net"
><font size="-2">http://epydoc.sf.net</font></a></td>
</tr>
</table>
</body>
</html>