class documentation

class ESMTPClient(SMTPClient): (source)

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

View In Hierarchy

A client for sending emails over ESMTP.
Method __getattr__ Undocumented
Method __init__ Undocumented
Method __setattr__ Undocumented
Method authenticate Undocumented
Method connection​Made Called when a connection has been made, and triggers sending an EHLO to the server.
Method esmtp​AUTHDeclined Fail because the authentication was rejected.
Method esmtp​AUTHMalformed​Challenge Fail because the server sent a malformed authentication challenge.
Method esmtp​AUTHRequired Fail because authentication is required, but the server does not support any schemes we support.
Method esmtp​AUTHServer​Error Fail because of some other authentication error.
Method esmtp​EHLORequired Fail because authentication is required, but the server does not support ESMTP, which is required for authentication.
Method esmtp​State_challenge Undocumented
Method esmtp​State_ehlo Send an EHLO to the server.
Method esmtp​State_server​Config 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 esmtp​State_starttls Handle a positive response to the STARTTLS command by starting a new TLS session on self.transport.
Method esmtp​TLSFailed Fail because the TLS handshake wasn't able to be completed.
Method esmtp​TLSRequired Fail because TLS is required and the server does not support it.
Method register​Authenticator No summary
Method smtp​State_maybe​Authenticated 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.
Method try​TLS Take a necessary step towards being able to begin a mail transaction.
Instance Variable authenticators Undocumented
Instance Variable context The context factory to use for STARTTLS, if desired.
Instance Variable helo​Fallback 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.
Instance Variable require​Authentication If True, refuse to proceed if authentication cannot be performed. Overrides heloFallback.
Instance Variable require​Transport​Security 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 secret Undocumented
Method _auth​Response Undocumented
Method _esmtp​State_plain​Auth Undocumented
Instance Variable _authinfo Undocumented
Instance Variable _expected Undocumented
Instance Variable _failresponse Undocumented
Instance Variable _okresponse Undocumented
Instance Variable _tls​Mode Whether or not the connection is over TLS.

Inherited from SMTPClient:

Method connection​Lost We are no longer connected
Method finished​File​Transfer Undocumented
Method get​Mail​Data Return file-like object containing data of message to be sent.
Method get​Mail​From Return the email address the mail is from.
Method get​Mail​To Return a list of emails to send to.
Method line​Received Override this for when each line is received.
Method send​Error If an error occurs before a mail message is sent sendError will be called. This base class method sends a QUIT if the error is non-fatal and disconnects the connection.
Method send​Line Sends a line to the other end of the connection.
Method sent​Mail Called when an attempt to send an email is completed.
Method smtp​Connection​Failed Undocumented
Method smtp​State_data Undocumented
Method smtp​State_disconnect Undocumented
Method smtp​State_from Undocumented
Method smtp​State_helo Undocumented
Method smtp​State_msg​Sent Undocumented
Method smtp​State_to Undocumented
Method smtp​State_to​Or​Data Undocumented
Method smtp​Transfer​Failed Undocumented
Method timeout​Connection Called when the connection times out.
Method transform​Chunk Perform the necessary local to network newline conversion and escape leading periods.
Class Variable debug Undocumented
Class Variable timeout Undocumented
Instance Variable code Undocumented
Instance Variable identity Undocumented
Instance Variable last​Address Undocumented
Instance Variable log Undocumented
Instance Variable mail​File Undocumented
Instance Variable resp Undocumented
Instance Variable success​Addresses Undocumented
Instance Variable to​Addresses Undocumented
Instance Variable to​Addresses​Result Undocumented
Method _disconnect​From​Server Undocumented
Instance Variable _from Undocumented

Inherited from LineReceiver (via SMTPClient):

Method clear​Line​Buffer Clear buffered data.
Method data​Received Protocol.dataReceived. Translates bytes into lines, and calls lineReceived (or rawDataReceived, depending on mode.)
Method line​Length​Exceeded Called when the maximum line length has been reached. Override if it needs to be dealt with in some special way.
Method raw​Data​Received Override this for when raw data is received.
Method set​Line​Mode Sets the line-mode of this receiver.
Method set​Raw​Mode Sets the raw mode of this receiver. Further data received will be sent to rawDataReceived rather than lineReceived.
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 line​_mode Undocumented
Instance Variable _buffer Undocumented
Instance Variable _busy​Receiving Undocumented

Inherited from Protocol (via SMTPClient, LineReceiver):

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

Inherited from BaseProtocol (via SMTPClient, LineReceiver, Protocol):

Method make​Connection Make a connection to a transport and a server.
Instance Variable connected Undocumented
Instance Variable transport Undocumented

Inherited from _PauseableMixin (via SMTPClient, LineReceiver):

Method pause​Producing Undocumented
Method resume​Producing Undocumented
Method stop​Producing Undocumented
Instance Variable paused Undocumented

Inherited from TimeoutMixin (via SMTPClient):

Method call​Later Wrapper around reactor.callLater for test purpose.
Method reset​Timeout Reset the timeout count down.
Method set​Timeout Change the timeout period
Instance Variable time​Out The number of seconds after which to timeout the connection.
Method __timed​Out Undocumented
Instance Variable __timeout​Call Undocumented
def __getattr__(self, name): (source)

Undocumented

def __init__(self, secret, contextFactory=None, *args, **kw): (source)
def __setattr__(self, name, value): (source)

Undocumented

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

Undocumented

def connectionMade(self): (source)
Called when a connection has been made, and triggers sending an EHLO to the server.
def esmtpAUTHDeclined(self, code=-1, resp=None): (source)
Fail because the authentication was rejected.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
def esmtpAUTHMalformedChallenge(self, code=-1, resp=None): (source)
Fail because the server sent a malformed authentication challenge.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
def esmtpAUTHRequired(self, code=-1, resp=None): (source)
Fail because authentication is required, but the server does not support any schemes we support.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
def esmtpAUTHServerError(self, code=-1, resp=None): (source)
Fail because of some other authentication error.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
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.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
def esmtpState_challenge(self, code, resp): (source)

Undocumented

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.

Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
Returns
None
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 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 esmtpTLSFailed(self, code=-1, resp=None): (source)
Fail because the TLS handshake wasn't able to be completed.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
def esmtpTLSRequired(self, code=-1, resp=None): (source)
Fail because TLS is required and the server does not support it.
Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
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.
Parameters
auth:IClientAuthentication implementorThe Authentication mechanism to register
Returns
None
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.
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.

Parameters
code:intThe server status code from the most recently received server message.
resp:bytesThe server status response from the most recently received server message.
items:dict mapping bytes to bytesA mapping of ESMTP extensions offered by the server. Keys are extension identifiers and values are the associated values.
Returns
None
authenticators: list = (source)

Undocumented

The context factory to use for STARTTLS, if desired.
heloFallback: bool = (source)
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.
requireAuthentication: bool = (source)
If True, refuse to proceed if authentication cannot be performed. Overrides heloFallback.
requireTransportSecurity: bool = (source)
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.
secret = (source)

Undocumented

def _authResponse(self, auth, challenge): (source)

Undocumented

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

Undocumented

_authinfo = (source)

Undocumented

_expected: list[int] = (source)
_failresponse = (source)
_okresponse = (source)
_tlsMode: bool = (source)
Whether or not the connection is over TLS.