A :class:`SMTP` instance encapsulates an SMTP connection. It has methods
that support a full repertoire of SMTP and ESMTP operations. If the optional
- host and port parameters are given, the SMTP :meth:`connect` method is called
- with those parameters during initialization. If specified, *local_hostname* is
- used as the FQDN of the local host in the HELO/EHLO command. Otherwise, the
- local hostname is found using :func:`socket.getfqdn`. If the
- :meth:`connect` call
- returns anything other than a success code, an :exc:`SMTPConnectError` is
- raised. The optional *timeout* parameter specifies a timeout in seconds for
- blocking operations like the connection attempt (if not specified, the
- global default timeout setting will be used).
+ host and port parameters are given, the SMTP :meth:`connect` method is
+ called with those parameters during initialization. If specified,
+ *local_hostname* is used as the FQDN of the local host in the HELO/EHLO
+ command. Otherwise, the local hostname is found using
+ :func:`socket.getfqdn`. If the :meth:`connect` call returns anything other
+ than a success code, an :exc:`SMTPConnectError` is raised. The optional
+ *timeout* parameter specifies a timeout in seconds for blocking operations
+ like the connection attempt (if not specified, the global default timeout
+ setting will be used).
For normal use, you should only require the initialization/connect,
:meth:`sendmail`, and :meth:`~smtplib.quit` methods.
required from the beginning of the connection and using :meth:`starttls` is
not appropriate. If *host* is not specified, the local host is used. If
*port* is omitted, the standard SMTP-over-SSL port (465) is used.
- *local_hostname* has the same meaning as it does for the :class:`SMTP` class.
- *keyfile*
- and *certfile* are also optional, and can contain a PEM formatted private key
- and certificate chain file for the SSL connection. The optional *timeout*
- parameter specifies a timeout in seconds for blocking operations like the
- connection attempt (if not specified, the global default timeout setting
- will be used).
+ *local_hostname* has the same meaning as it does for the :class:`SMTP`
+ class. *keyfile* and *certfile* are also optional, and can contain a PEM
+ formatted private key and certificate chain file for the SSL connection. The
+ optional *timeout* parameter specifies a timeout in seconds for blocking
+ operations like the connection attempt (if not specified, the global default
+ timeout setting will be used).
.. versionadded:: 2.6
.. class:: LMTP([host[, port[, local_hostname]]])
The LMTP protocol, which is very similar to ESMTP, is heavily based on the
- standard SMTP client. It's common to use Unix sockets for LMTP, so our :meth:`connect`
- method must support that as well as a regular host:port server. *local_hostname*
- has the same meaning as it does for the :class:`SMTP` class. To specify a
- Unix socket, you must use an absolute path for *host*, starting with a '/'.
-
- Authentication is supported, using the regular SMTP mechanism. When using a Unix
- socket, LMTP generally don't support or require any authentication, but your
- mileage might vary.
+ standard SMTP client. It's common to use Unix sockets for LMTP, so our
+ :meth:`connect` method must support that as well as a regular host:port
+ server. *local_hostname* has the same meaning as it does for the
+ :class:`SMTP` class. To specify a Unix socket, you must use an absolute
+ path for *host*, starting with a '/'.
+
+ Authentication is supported, using the regular SMTP mechanism. When using a
+ Unix socket, LMTP generally don't support or require any authentication, but
+ your mileage might vary.
.. versionadded:: 2.6
If specified, `host' is the name of the remote host to which to
connect. If specified, `port' specifies the port to which to connect.
By default, smtplib.SMTP_PORT is used. If a host is specified the
- connect method is called, and if it returns anything other than
- a success code an SMTPConnectError is raised. If specified,
+ connect method is called, and if it returns anything other than a
+ success code an SMTPConnectError is raised. If specified,
`local_hostname` is used as the FQDN of the local host for the
- HELO/EHLO command. Otherwise,
- the local hostname is found using socket.getfqdn().
+ HELO/EHLO command. Otherwise, the local hostname is found using
+ socket.getfqdn().
"""
self.timeout = timeout
if _have_ssl:
class SMTP_SSL(SMTP):
- """ This is a subclass derived from SMTP that connects over an SSL encrypted
- socket (to use this class you need a socket module that was compiled with SSL
- support). If host is not specified, '' (the local host) is used. If port is
- omitted, the standard SMTP-over-SSL port (465) is used. local_hostname
- has the same meaning as it does in the SMTP class. keyfile and certfile
- are also optional - they can contain a PEM formatted private key and
- certificate chain file for the SSL connection.
+ """ This is a subclass derived from SMTP that connects over an SSL
+ encrypted socket (to use this class you need a socket module that was
+ compiled with SSL support). If host is not specified, '' (the local
+ host) is used. If port is omitted, the standard SMTP-over-SSL port
+ (465) is used. local_hostname has the same meaning as it does in the
+ SMTP class. keyfile and certfile are also optional - they can contain
+ a PEM formatted private key and certificate chain file for the SSL
+ connection.
+
"""
default_port = SMTP_SSL_PORT
"""LMTP - Local Mail Transfer Protocol
The LMTP protocol, which is very similar to ESMTP, is heavily based
- on the standard SMTP client. It's common to use Unix sockets for LMTP,
- so our connect() method must support that as well as a regular
- host:port server. local_hostname has the same meaning as it does in the
- SMTP class. To specify a Unix socket, you must use an absolute
+ on the standard SMTP client. It's common to use Unix sockets for
+ LMTP, so our connect() method must support that as well as a regular
+ host:port server. local_hostname has the same meaning as it does in
+ the SMTP class. To specify a Unix socket, you must use an absolute
path as the host, starting with a '/'.
Authentication is supported, using the regular SMTP mechanism. When