Package twisted :: Package protocols :: Module smtp :: Class SMTP

[frames | no frames]

## Class SMTP

    BaseProtocol --+
                   |
            Protocol --+
                       |
            LineReceiver --+
                           |
            TimeoutMixin --+
                           |
                          SMTP

Known Subclasses:
  `DomainSMTP`, `ESMTP`

SMTP server-side protocol.

Method Summary
| `__init__(self, delivery, deliveryFactory)`
| `_cbAuthenticated(self, (iface, avatar, logout))`
| `_cbFromValidate(self, from_, code, msg)`
| `_cbToValidate(self, to, user, code, msg)`
| `_ebAuthenticated(self, reason)`
| `_ebFromValidate(self, failure)`
| `_ebToValidate(self, failure)`
| `_messageHandled(self, _)`
| `_messageNotHandled(self, failure)`
| `connectionLost(self, reason)`
| ``connectionMade`(self)` Called when a connection is made.
| `dataLineReceived(self, line)`
| `do_DATA(self, rest)`
| `do_HELO(self, rest)`
| `do_MAIL(self, rest)`
| `do_QUIT(self, rest)`
| `do_RCPT(self, rest)`
| `do_RSET(self, rest)`
| `do_UNKNOWN(self, rest)`
| `greeting(self)`
| ``lineLengthExceeded`(self, line)` Called when the maximum line length has been reached.
| ``lineReceived`(self, line)` Override this for when each line is received.
| `lookupMethod(self, command)`
| ``rawDataReceived`(self, data)` Throw away rest of long line
| ``sendCode`(self, code, message)` Send an SMTP code with a message.
| `sendSyntaxError(self)`
| `startMessage(self, recipients)`
| `state_COMMAND(self, line)`
| `state_DATA(self, line)`
| ``timeoutConnection`(self)` Called when the connection times out.
`Deferred` or `Address` | ``validateFrom`(self, helo, origin)` Validate the address from which the message originates.
no-argument callable | ``validateTo`(self, user)` Validate the address for which the message is destined.
Inherited from LineReceiver
| ``clearLineBuffer`(self)` Clear buffered data.
| ``dataReceived`(self, data)` Protocol.dataReceived.
| ``sendLine`(self, line)` Sends a line to the other end of the connection.
| ``setLineMode`(self, extra)` Sets the line-mode of this receiver.
| ``setRawMode`(self)` Sets the raw mode of this receiver.
Inherited from Protocol
| ``connectionFailed`(self)` (Deprecated)
Inherited from BaseProtocol
| ``makeConnection`(self, transport)` Make a connection to a transport and a server.
Inherited from TimeoutMixin
| ``resetTimeout`(self)` Reset the timeout count down
| ``setTimeout`(self, period)` Change the timeout period

Class Variable Summary
`NoneType` | `_onLogout` = None
`NoneType` | `delivery` = None
`NoneType` | `deliveryFactory` = None
`str` | `host` = `'twistedmatrix.com'`
`SRE_Pattern` | `mail_re` = `\s*FROM:\s*(<>|<("[^"]*"|\\.|[-A-Za-z0-9!#\$%&...`
`NoneType` | `portal` = None
`str` | `qstring` = `'("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|...`
`SRE_Pattern` | `rcpt_re` = `\s*TO:\s*(<("[^"]*"|\\.|[-A-Za-z0-9!#\$%&'\*\+...`
`int` | `timeout` = 600
Inherited from LineReceiver
`str` | `_LineReceiver__buffer` = `''`
`str` | `delimiter`: The line-ending delimiter to use.
`int` | `line_mode` = 1
`int` | `MAX_LENGTH`: The maximum length of a line to allow (If a sent line is longer than this, the connection is dropped).
Inherited from Protocol
`tuple` | `__implements__` = `(<class twisted.internet.interfaces.IPr...`
Inherited from BaseProtocol
`int` | `connected` = 0
`NoneType` | `transport` = None
Inherited from TimeoutMixin
`NoneType` | `_TimeoutMixin__lastReceived` = None
`NoneType` | `_TimeoutMixin__timeoutCall` = None
`NoneType` | `timeOut`: The number of seconds after which to timeout the connection.

Method Details

### connectionMade(self)

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.

  Overrides:
    `twisted.internet.protocol.BaseProtocol.connectionMade` (inherited documentation)

### lineLengthExceeded(self, line)

Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.

  Overrides:
    `twisted.protocols.basic.LineReceiver.lineLengthExceeded` (inherited documentation)

### lineReceived(self, line)

Override this for when each line is received.

  Overrides:
    `twisted.protocols.basic.LineReceiver.lineReceived` (inherited documentation)

### rawDataReceived(self, data)

Throw away rest of long line

  Overrides:
    `twisted.protocols.basic.LineReceiver.rawDataReceived`

### sendCode(self, code, message='')

Send an SMTP code with a message.

### timeoutConnection(self)

Called when the connection times out. Override to define behavior other than dropping the connection.

  Overrides:
    `twisted.protocols.policies.TimeoutMixin.timeoutConnection` (inherited documentation)

### validateFrom(self, helo, origin)

Validate the address from which the message originates.

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

### validateTo(self, user)

Validate the address for which the message is destined.

  Parameters:
    `user` - The address to validate.
    (type=`User`)
  Returns:
    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.
    (type=no-argument callable)
  Raises:
    `SMTPBadRcpt` - Raised if messages to the address are not to be accepted.

Class Variable Details

### _onLogout

  Type:
    `NoneType`
  Value:

        None

### delivery

  Type:
    `NoneType`
  Value:

        None

### deliveryFactory

  Type:
    `NoneType`
  Value:

        None

### host

  Type:
    `str`
  Value:

        'twistedmatrix.com'

### mail_re

  Type:
    `SRE_Pattern`
  Value:

        \s*FROM:\s*(<>|<("[^"]*"|\\.|[-A-Za-z0-9!#\$%&'\*\+/=\?\^_`\{\|\}~]|[@\
        \.,:])+>|("[^"]*"|\\.|[-A-Za-z0-9!#\$%&'\*\+/=\?\^_`\{\|\}~]|[@\.,:])+\
        )\s*(\s(.*))?$

### portal

  Type:
    `NoneType`
  Value:

        None

### qstring

  Type:
    `str`
  Value:

        '("[^"]*"|\\\\.|[-A-Za-z0-9!\\#$%&\'*+/=?^_`{|}~]|[@.,:])+'

### rcpt_re

  Type:
    `SRE_Pattern`
  Value:

        \s*TO:\s*(<("[^"]*"|\\.|[-A-Za-z0-9!#\$%&'\*\+/=\?\^_`\{\|\}~]|[@\.,:]\
        )+>|("[^"]*"|\\.|[-A-Za-z0-9!#\$%&'\*\+/=\?\^_`\{\|\}~]|[@\.,:])+)\s*(\
        \s(.*))?$

### timeout

  Type:
    `int`
  Value:

        600

Generated by Epydoc 2.0 on Sat May 15 20:08:01 2004 | http://epydoc.sf.net