twisted.mail.smtp.ESMTPClient(SMTPClient)
class documentationtwisted.mail.smtp
View Source
(View In Hierarchy)
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 |
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
)
True
, refuse to proceed if authentication cannot be
performed. Overrides heloFallback
. (type: bool
)
True
, refuse to proceed if the transport cannot be secured.
If the transport layer is not already secured via TLS, this will override
heloFallback
.
Fail because authentication is required, but the server does not support ESMTP, which is required for authentication.
Parameters | code | The server status code from the most recently received server message. (type: int ) |
resp | The server status response from the most recently received server message. (type: bytes ) |
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. @param auth: The Authentication mechanism to register @type auth: L{IClientAuthentication} implementor @return C{None}
Called when a connection has been made, and triggers sending an
EHLO
to the server.
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 | The server status code from the most recently received server message. (type: int ) |
resp | The server status response from the most recently received server message. (type: bytes ) | |
Returns | None |
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.
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 | The server status code from the most recently received server message. (type: int ) |
resp | The server status response from the most recently received server message. (type: bytes ) | |
items | A mapping of ESMTP extensions offered by the server. Keys are extension
identifiers and values are the associated values. (type: dict
mapping bytes
to bytes ) | |
Returns | None |
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.
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.