# ``twisted`.`mail`.`smtp`.`SMTP``

class documentation

`class SMTP(basic.LineOnlyReceiver, policies.TimeoutMixin): (source)`

Known subclasses: `twisted.mail.smtp.ESMTP`

View In Hierarchy

SMTP server-side protocol.

Method | `__init__` | Undocumented
Method | `connectionLost` | Called when the connection is shut down.
Method | `connectionMade` | Called when a connection is made.
Method | `dataLineReceived` | Undocumented
Method | `do_DATA` | Undocumented
Method | `do_HELO` | Undocumented
Method | `do_MAIL` | Undocumented
Method | `do_QUIT` | Undocumented
Method | `do_RCPT` | Undocumented
Method | `do_RSET` | Undocumented
Method | `do_UNKNOWN` | Undocumented
Method | `greeting` | Undocumented
Method | `host.setter` | Undocumented
Method | `lineLengthExceeded` | Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method | `lineReceived` | Override this for when each line is received.
Method | `lookupMethod` |
Method | `receivedHeader` | Undocumented
Method | `sendCode` | Send an SMTP code with a message.
Method | `sendSyntaxError` | Undocumented
Method | `state_COMMAND` | Undocumented
Method | `timeoutConnection` | Called when the connection times out.
Method | `validateFrom` | Validate the address from which the message originates.
Method | `validateTo` | Validate the address for which the message is destined.
Class Variable | `mail_re` | Undocumented
Class Variable | `noisy` | Undocumented
Class Variable | `portal` | Undocumented
Class Variable | `qstring` | Undocumented
Class Variable | `rcpt_re` | Undocumented
Class Variable | `timeout` | Undocumented
Instance Variable | `challenger` | Undocumented
Instance Variable | `datafailed` | Undocumented
Instance Variable | `delivery` | Undocumented
Instance Variable | `deliveryFactory` | Undocumented
Instance Variable | `mode` | Undocumented
Property | `host` | Undocumented
Method | `_cbAnonymousAuthentication` | Save the state resulting from a successful anonymous cred login.
Method | `_cbFromValidate` | Undocumented
Method | `_cbToValidate` | Undocumented
Method | `_disconnect` | Undocumented
Method | `_ebFromValidate` | Undocumented
Method | `_ebToValidate` | Undocumented
Method | `_messageHandled` | Undocumented
Instance Variable | `__inbody` | Undocumented
Instance Variable | `__inheader` | Undocumented
Instance Variable | `__messages` | Undocumented
Instance Variable | `_from` | Undocumented
Instance Variable | `_helo` | Undocumented
Instance Variable | `_host` | Undocumented
Instance Variable | `_onLogout` | Undocumented
Instance Variable | `_to` | Undocumented

Inherited from `LineOnlyReceiver`:

Method | `dataReceived` | Translates bytes into lines, and calls lineReceived.
Method | `sendLine` | Sends a line to the other end of the connection.
Constant | `MAX_LENGTH` | The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped). Default is 16384.
Class Variable | `delimiter` | The line-ending delimiter to use. By default this is `b'\r\n'`.
Instance Variable | `_buffer` | Undocumented

Inherited from `Protocol` (via `LineOnlyReceiver`):

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

Inherited from `BaseProtocol` (via `LineOnlyReceiver`, `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

Inherited from `TimeoutMixin`:

Method | `callLater` | Wrapper around `reactor.callLater` for test purpose.
Method | `resetTimeout` | Reset the timeout count down.
Method | `setTimeout` | Change the timeout period
Instance Variable | `timeOut` | The number of seconds after which to timeout the connection.
Method | `__timedOut` | Undocumented
Instance Variable | `__timeoutCall` | Undocumented

def __init__(self, delivery=None, deliveryFactory=None): (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

def connectionLost(self, reason): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.Protocol.connectionLost`

Called when the connection is shut down.

Clear any circular references here, and any external references to this Protocol. The connection has been closed.

Parameters
reason:`twisted.python.failure.Failure` | Undocumented

def connectionMade(self): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.BaseProtocol.connectionMade`
overridden in `twisted.mail.smtp.ESMTP`

Called when a connection is made.

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.

def dataLineReceived(self, line): (source)

Undocumented

def do_DATA(self, rest): (source)

Undocumented

def do_HELO(self, rest): (source)

Undocumented

def do_MAIL(self, rest): (source)

Undocumented

def do_QUIT(self, rest): (source)

Undocumented

def do_RCPT(self, rest): (source)

Undocumented

def do_RSET(self, rest): (source)

Undocumented

def do_UNKNOWN(self, rest): (source)

Undocumented

def greeting(self): (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

@host.setter
def host(self, toSet): (source)

Undocumented

def lineLengthExceeded(self, line): (source)
overrides `twisted.protocols.basic.LineOnlyReceiver.lineLengthExceeded`
Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
def lineReceived(self, line): (source)
overrides `twisted.protocols.basic.LineOnlyReceiver.lineReceived`
Override this for when each line is received.

Parameters
line:`bytes` | The line which was received with the delimiter removed.

def lookupMethod(self, command): (source)
overridden in `twisted.mail.smtp.ESMTP`

Parameters
command:`str` | The command to get from this class.
Returns
The function which executes this command.

def receivedHeader(self, helo, origin, recipients): (source)

Undocumented

def sendCode(self, code, message=b''): (source)
Send an SMTP code with a message.
def sendSyntaxError(self): (source)

Undocumented

def state_COMMAND(self, line): (source)

Undocumented

def timeoutConnection(self): (source)
overrides `twisted.protocols.policies.TimeoutMixin.timeoutConnection`

Called when the connection times out.

Override to define behavior other than dropping the connection.

def validateFrom(self, helo, origin): (source)
Validate the address from which the message originates.

Parameters
helo:`(bytes, bytes)` | The argument to the HELO command and the client's IP address.
origin:`Address` | The address the message is from
Returns
`Deferred` or `Address` | `origin` or a `Deferred` whose callback will be passed `origin`.
Raises
`SMTPBadSender` | Raised of messages from this address are not to be accepted.

def validateTo(self, user): (source)
Validate the address for which the message is destined.

Parameters
user:`User` | The address to validate.
Returns
no-argument callable | A `Deferred` which becomes, or a callable which takes no arguments and returns an object implementing `IMessage`. This will be called and the returned object used to deliver the message when it arrives.
Raises
`SMTPBadRcpt` | Raised if messages to the address are not to be accepted.

mail_re = (source)

Undocumented

noisy: `bool` = (source)

Undocumented

portal = (source)

Undocumented

qstring = (source)

Undocumented

rcpt_re = (source)

Undocumented

timeout: `int` = (source)

Undocumented

challenger = (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

datafailed = (source)

Undocumented

delivery = (source)

Undocumented

deliveryFactory = (source)

Undocumented

mode = (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

@property
host = (source)

Undocumented

def _cbAnonymousAuthentication(self, result): (source)
Save the state resulting from a successful anonymous cred login.
def _cbFromValidate(self, fromEmail, code=250, msg=b'Sender address accepted'): (source)

Undocumented

def _cbToValidate(self, to, user=None, code=250, msg=b'Recipient address accepted'): (source)

Undocumented

def _disconnect(self, msgs): (source)

Undocumented

def _ebFromValidate(self, failure): (source)

Undocumented

def _ebToValidate(self, failure): (source)

Undocumented

def _messageHandled(self, resultList): (source)

Undocumented

__inbody: `int` = (source)

Undocumented

__inheader: `int` = (source)

Undocumented

__messages = (source)

Undocumented

_from = (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

_helo = (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented

_host = (source)

Undocumented

_onLogout = (source)

Undocumented

_to: `list` = (source)
overridden in `twisted.mail.smtp.ESMTP`

Undocumented