Known subclasses: twisted.mail.relaymanager.SmartHostESMTPRelayingManager

A smart host which uses SMTP managed relayers to send messages from the relay queue.

checkState must be called periodically at which time the state of the relay queue is checked and new relayers are created as needed.

In order to relay a set of messages to a mail exchange server, a smart host creates an attempt manager and a managed relayer factory for that set of messages. When a connection is made with the mail exchange server, the managed relayer factory creates a managed relayer to send the messages. The managed relayer reports on its progress to the attempt manager which, in turn, updates the smart host's relay queue and information about its managed relayers.

Instance Variable queue See __init__.
Instance Variable maxConnections See __init__.
Instance Variable maxMessagesPerConnection See __init__.
Instance Variable fArgs Positional arguments for SMTPManagedRelayerFactory.__init__. (type: 3-tuple of (0) list of bytes, (1) _AttemptManager, (2) bytes or 4-tuple of (0) list of bytes, (1) _AttemptManager, (2) bytes, (3) int)
Instance Variable fKwArgs Keyword arguments for SMTPManagedRelayerFactory.__init__. (type: dict)
Instance Variable factory A callable which creates a factory for creating a managed relayer. See SMTPManagedRelayerFactory.__init__ for parameters to the callable. (type: callable which returns SMTPManagedRelayerFactory)
Instance Variable PORT The port over which to connect to the SMTP server. (type: int)
Instance Variable mxcalc A resource for mail exchange host lookups. (type: None or MXCalculator)
Instance Variable managed A mapping of factory for a managed relayer to filenames of messages the managed relayer is responsible for. (type: dict mapping SMTPManagedRelayerFactory to list of bytes)
Method __init__ Initialize a smart host.
Method __getstate__ Create a representation of the non-volatile state of this object.
Method __setstate__ Restore the non-volatile state of this object and recreate the volatile state.
Method checkState Check the state of the relay queue and, if possible, launch relayers to handle waiting messages.
Method _checkStateMX Undocumented
Method _cbExchange Initiate a connection with a mail exchange server.
Method _ebExchange Prepare to resend messages later.
queue =
See __init__.
maxConnections =
See __init__.
maxMessagesPerConnection =
See __init__.
fArgs =
Positional arguments for SMTPManagedRelayerFactory.__init__. (type: 3-tuple of (0) list of bytes, (1) _AttemptManager, (2) bytes or 4-tuple of (0) list of bytes, (1) _AttemptManager, (2) bytes, (3) int)
fKwArgs =
Keyword arguments for SMTPManagedRelayerFactory.__init__. (type: dict)
factory =
A callable which creates a factory for creating a managed relayer. See SMTPManagedRelayerFactory.__init__ for parameters to the callable. (type: callable which returns SMTPManagedRelayerFactory)
PORT =
The port over which to connect to the SMTP server. (type: int)
mxcalc =
A resource for mail exchange host lookups. (type: None or MXCalculator)
managed =
A mapping of factory for a managed relayer to filenames of messages the managed relayer is responsible for. (type: dict mapping SMTPManagedRelayerFactory to list of bytes)
def __init__(self, queue, maxConnections=2, maxMessagesPerConnection=10): (source)

Initialize a smart host.

The default values specify connection limits appropriate for a low-volume smart host.

ParametersqueueA relay queue. (type: Queue)
maxConnectionsThe maximum number of concurrent connections to SMTP servers. (type: int)
maxMessagesPerConnectionThe maximum number of messages for which a relayer will be given responsibility. (type: int)
def __getstate__(self): (source)

Create a representation of the non-volatile state of this object.

ReturnsThe non-volatile state of the queue. (type: dict mapping bytes to object)
def __setstate__(self, state): (source)

Restore the non-volatile state of this object and recreate the volatile state.

ParametersstateThe non-volatile state of the queue. (type: dict mapping bytes to object)
def checkState(self): (source)

Check the state of the relay queue and, if possible, launch relayers to handle waiting messages.

ReturnsNo return value if no further messages can be relayed or a deferred which fires when all of the SMTP connections initiated by this call have disconnected. (type: None or Deferred)
def _checkStateMX(self): (source)
Undocumented
def _cbExchange(self, address, port, factory): (source)

Initiate a connection with a mail exchange server.

This callback function runs after mail exchange server for the domain has been looked up.

ParametersaddressThe hostname of a mail exchange server. (type: bytes)
portA port number. (type: int)
factoryA factory which can create a relayer for the mail exchange server. (type: SMTPManagedRelayerFactory)
def _ebExchange(self, failure, factory, domain): (source)

Prepare to resend messages later.

This errback function runs when no mail exchange server for the domain can be found.

ParametersfailureThe reason the mail exchange lookup failed. (type: Failure)
factoryA factory which can create a relayer for the mail exchange server. (type: SMTPManagedRelayerFactory)
domainA domain. (type: bytes)
API Documentation for Twisted, generated by pydoctor at 2017-06-11 10:59:01.