Known subclasses: twisted.mail.relay.ESMTPRelayer, twisted.mail.smtp.ESMTPSender

A client for sending emails over ESMTP.

Instance Variable heloFallback Whether or not to fall back to plain SMTP if the EHLO command is not recognised by the server. If requireAuthentication is True, or requireTransportSecurity is True and the connection is not over TLS, this fallback flag will not be honored. (type: bool)
Instance Variable requireAuthentication If True, refuse to proceed if authentication cannot be performed. Overrides heloFallback. (type: bool)
Instance Variable requireTransportSecurity If True, refuse to proceed if the transport cannot be secured. If the transport layer is not already secured via TLS, this will override heloFallback.
Instance Variable context The context factory to use for STARTTLS, if desired. (type: ssl.ClientContextFactory)
Method __init__ Undocumented
Method __getattr__ Undocumented
Method __setattr__ Undocumented
Method esmtpEHLORequired Fail because authentication is required, but the server does not support ESMTP, which is required for authentication.
Method esmtpAUTHRequired Fail because authentication is required, but the server does not support any schemes we support.
Method esmtpTLSRequired Fail because TLS is required and the server does not support it.
Method esmtpTLSFailed Fail because the TLS handshake wasn't able to be completed.
Method esmtpAUTHDeclined Fail because the authentication was rejected.
Method esmtpAUTHMalformedChallenge Fail because the server sent a malformed authentication challenge.
Method esmtpAUTHServerError Fail because of some other authentication error.
Method registerAuthenticator No summary
Method connectionMade Called when a connection has been made, and triggers sending an EHLO to the server.
Method esmtpState_ehlo Send an EHLO to the server.
Method esmtpState_serverConfig Handle a positive response to the EHLO command by parsing the capabilities in the server's response and then taking the most appropriate next step towards entering a mail transaction.
Method tryTLS Take a necessary step towards being able to begin a mail transaction.
Method esmtpState_starttls Handle a positive response to the STARTTLS command by starting a new TLS session on self.transport.
Method authenticate Undocumented
Method esmtpState_challenge Undocumented
Method smtpState_maybeAuthenticated Called to handle the next message from the server after sending a response to a SASL challenge. The server response might be another challenge or it might indicate authentication has succeeded.
Instance Variable _tlsMode Whether or not the connection is over TLS. (type: bool)
Method _esmtpState_plainAuth Undocumented
Method _authResponse Undocumented

Inherited from TimeoutMixin (via SMTPClient):

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

Inherited from TimeoutMixin (via SMTPClient):

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

Inherited from TimeoutMixin (via SMTPClient):

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

Inherited from TimeoutMixin (via SMTPClient):

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

Inherited from TimeoutMixin (via SMTPClient):

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

Inherited from TimeoutMixin (via SMTPClient):

Class Variable timeOut The number of seconds after which to timeout the connection.
Method callLater Wrapper around reactor.callLater for test purpose.
Method resetTimeout Reset the timeout count down.
Method setTimeout Change the timeout period
Method __timedOut Undocumented
heloFallback =
Whether or not to fall back to plain SMTP if the EHLO command is not recognised by the server. If requireAuthentication is True, or requireTransportSecurity is True and the connection is not over TLS, this fallback flag will not be honored. (type: bool)
requireAuthentication =
If True, refuse to proceed if authentication cannot be performed. Overrides heloFallback. (type: bool)
requireTransportSecurity =
If True, refuse to proceed if the transport cannot be secured. If the transport layer is not already secured via TLS, this will override heloFallback.
context =
The context factory to use for STARTTLS, if desired. (type: ssl.ClientContextFactory)
_tlsMode =
Whether or not the connection is over TLS. (type: bool)
def __init__(self, secret, *args, contextFactory=None, **kw): (source)
def __getattr__(self, name): (source)
Undocumented
def __setattr__(self, name, value): (source)
Undocumented
def esmtpEHLORequired(self, code=-1, resp=None): (source)

Fail because authentication is required, but the server does not support ESMTP, which is required for authentication.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpAUTHRequired(self, code=-1, resp=None): (source)

Fail because authentication is required, but the server does not support any schemes we support.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpTLSRequired(self, code=-1, resp=None): (source)

Fail because TLS is required and the server does not support it.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpTLSFailed(self, code=-1, resp=None): (source)

Fail because the TLS handshake wasn't able to be completed.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpAUTHDeclined(self, code=-1, resp=None): (source)

Fail because the authentication was rejected.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpAUTHMalformedChallenge(self, code=-1, resp=None): (source)

Fail because the server sent a malformed authentication challenge.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def esmtpAUTHServerError(self, code=-1, resp=None): (source)

Fail because of some other authentication error.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
def registerAuthenticator(self, auth): (source)

Registers an Authenticator with the ESMTPClient. The ESMTPClient will attempt to login to the SMTP Server in the order the Authenticators are registered. The most secure Authentication mechanism should be registered first.

ParametersauthThe Authentication mechanism to register (type: IClientAuthentication implementor)
ReturnsNone
def connectionMade(self): (source)

Called when a connection has been made, and triggers sending an EHLO to the server.

def esmtpState_ehlo(self, code, resp): (source)

Send an EHLO to the server.

If heloFallback is True, and there is no requirement for TLS or authentication, the client will fall back to basic SMTP.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
ReturnsNone
def esmtpState_serverConfig(self, code, resp): (source)

Handle a positive response to the EHLO command by parsing the capabilities in the server's response and then taking the most appropriate next step towards entering a mail transaction.

def tryTLS(self, code, resp, items): (source)

Take a necessary step towards being able to begin a mail transaction.

The step may be to ask the server to being a TLS session. If TLS is already in use or not necessary and not available then the step may be to authenticate with the server. If TLS is necessary and not available, fail the mail transmission attempt.

This is an internal helper method.

ParameterscodeThe server status code from the most recently received server message. (type: int)
respThe server status response from the most recently received server message. (type: bytes)
itemsA mapping of ESMTP extensions offered by the server. Keys are extension identifiers and values are the associated values. (type: dict mapping bytes to bytes)
ReturnsNone
def esmtpState_starttls(self, code, resp): (source)

Handle a positive response to the STARTTLS command by starting a new TLS session on self.transport.

Upon success, re-handshake with the server to discover what capabilities it has when TLS is in use.

def authenticate(self, code, resp, items): (source)
Undocumented
def _esmtpState_plainAuth(self, code, resp): (source)
Undocumented
def esmtpState_challenge(self, code, resp): (source)
Undocumented
def _authResponse(self, auth, challenge): (source)
Undocumented
def smtpState_maybeAuthenticated(self, code, resp): (source)

Called to handle the next message from the server after sending a response to a SASL challenge. The server response might be another challenge or it might indicate authentication has succeeded.

API Documentation for Twisted, generated by pydoctor at 2017-06-11 10:59:01.