11.12 smtplib -- SMTP protocol client


The smtplib module defines an SMTP client session object that can be used to send mail to any Internet machine with an SMTP or ESMTP listener daemon. For details of SMTP and ESMTP operation, consult RFC 821 (Simple Mail Transfer Protocol) and RFC 1869 (SMTP Service Extensions).

class SMTP([host[, port]])
A 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 connect() method is called with those parameters during initialization. An SMTPConnectError is raised if the specified host doesn't respond correctly.

For normal use, you should only require the initialization/connect, sendmail(), and quit() methods. An example is included below.

A nice selection of exceptions is defined as well:

exception SMTPException
Base exception class for all exceptions raised by this module.

exception SMTPServerDisconnected
This exception is raised when the server unexpectedly disconnects, or when an attempt is made to use the SMTP instance before connecting it to a server.

exception SMTPResponseException
Base class for all exceptions that include an SMTP error code. These exceptions are generated in some instances when the SMTP server returns an error code. The error code is stored in the smtp_code attribute of the error, and the smtp_error attribute is set to the error message.

exception SMTPSenderRefused
Sender address refused. In addition to the attributes set by on all SMTPResponseException exceptions, this sets `sender' to the string that the SMTP server refused.

exception SMTPRecipientsRefused
All recipient addresses refused. The errors for each recipient are accessible through the attribute recipients, which is a dictionary of exactly the same sort as SMTP.sendmail() returns.

exception SMTPDataError
The SMTP server refused to accept the message data.

exception SMTPConnectError
Error occurred during establishment of a connection with the server.

exception SMTPHeloError
The server refused our "HELO" message.

See Also:

RFC 821, Simple Mail Transfer Protocol
Protocol definition for SMTP. This document covers the model, operating procedure, and protocol details for SMTP.
RFC 1869, SMTP Service Extensions
Definition of the ESMTP extensions for SMTP. This describes a framework for extending SMTP with new commands, supporting dynamic discovery of the commands provided by the server, and defines a few additional commands.

See About this document... for information on suggesting changes.