drymail module

class drymail.Message(sender, receivers, subject=None, authors=None, cc=None, bcc=None, reply_to=None, headers=None, text=None, html=None, prepared_message=None)[source]

Bases: object

Class representing an email message.

Parameters:
  • sender (str or (str, str)) – The address of the sender. Can be either the email address or a tuple of the name and the email address.
  • receivers (list of (str or (str, str))) – The list of receivers // recipients. Each element can be either an email address or a tuple of a name and an email address.
  • subject (str, optional) – The subject of the email
  • authors (list of (str or (str, str)), optional) – The list of authors, to be mentioned in the Authors header. Each element can be either an email address or a tuple of a name and an email address.
  • cc (list of (str or (str, str)), optional) – The list of addresses to CC to. Each element can be either an email address or a tuple of a name and an email address.
  • bcc (list of (str or (str, str)), optional) – The list of addresses to BCC to. Each element can be either an email address or a tuple of a name and an email address.
  • reply_to (list of (str or (str, str)), optional) – The list of addresses to mention in the Reply-To header. Each element can be either an email address or a tuple of a name and an email address.
  • headers (dict, optional) – Custom headers as key-value pairs, to be injected into the email.
  • text (str, optional) – The body of the message, as plaintext. At least one among text and html must be provided.
  • html (str, optional) – The body of the message, as HTML. At least one among text and html must be provided.
  • prepared_message (bytes, optional) – A prepared email as bytes. If this is provided, all the other optional parameters will be ignored.
message

The prepared message object.

Type:email.message.Message object or email.mime.multipart.MIMEMultipart object
prepared

Whether the message is prepared, in other words whether self.message is available and proper.

Type:bool
sender

The address of the sender. Can be either the email address or a tuple of the name and the email address.

Type:str or (str, str)
receivers

The list of receivers // recipients. Each element can be either an email address or a tuple of a name and an email address.

Type:list of (str or (str, str))
subject

The subject of the email

Type:str
authors

The list of authors, to be mentioned in the Authors header. Each element can be either an email address or a tuple of a name and an email address.

Type:list of (str or (str, str))
cc

The list of addresses to CC to. Each element can be either an email address or a tuple of a name and an email address.

Type:list of (str or (str, str))
bcc

The list of addresses to BCC to. Each element can be either an email address or a tuple of a name and an email address.

Type:list of (str or (str, str))
reply_to

The list of addresses to mention in the Reply-To header. Each element can be either an email address or a tuple of a name and an email address.

Type:list of (str or (str, str))
headers

Custom headers as key-value pairs, to be injected into the email.

Type:dict
text

The body of the message, as plaintext.

Type:str
html

The body of the message, as HTML.

Type:str
prepared_message

A prepared email as bytes.

Type:bytes
attach(data, filename, mimetype=None)[source]

Add a file as attachment to the email.

Parameters:
  • data (bytes) – The raw content of the file to be attached.
  • filename (str) – The name of the file to be attached.
  • mimetype (str, optional) – The MIMEType of the file to be attached.
attachments

All the attachments attached to the message.

Returns:The filenames of the attachments attached.
Return type:list of str
prepare()[source]

Prepare the self.message object.

class drymail.SMTPMailer(host, port=None, user=None, password=None, ssl=False, tls=False, **kwargs)[source]

Bases: object

Wrapper around smtplib.SMTP class, for managing a SMTP client.

Parameters:
  • host (str) – The hostname of the SMTP server to connect to.
  • port (int, optional) – The port number of the SMTP server to connect to.
  • user (str, optional) – The username to be used for authentication to the SMTP server.
  • password (str, optional) – The password to be used for authentication to the SMTP server.
  • ssl (bool, optional) – Whether to use SSL for the SMTP connection.
  • tls (bool, optional) – Whether to use TLS // starttls for the SMTP connection.
  • keyfile (str, optional) – File containing the SSL private key.
  • certfile (str, optional) – File containing the SSL certificate in PEM format.
  • context (ssl.SSLContext object) – The SSL context to be used in the SSL connection.
client

The SMTP client that’d be used to send emails.

Type:smtplib.SMTP object
connected

Whether there is an active SMTP connection.

Type:bool
host

The hostname of the SMTP server to connect to.

Type:str
port

The port number of the SMTP server to connect to.

Type:int
user

The username to be used for authentication to the SMTP server.

Type:str
password

The password to be used for authentication to the SMTP server.

Type:str
ssl

Whether to use SSL for the SMTP connection.

Type:bool
tls

Whether to use TLS // starttls for the SMTP connection.

Type:bool
close()[source]

Close the SMTP connection and quit the self.client object.

connect()[source]

Create the SMTP connection.

send(message, sender=None, receivers=None)[source]

Send an email through this SMTP client.

Parameters:
  • message (drymail.Message object) – The message to be sent.
  • sender (str, optional) – The email address of the sender.
  • receivers (list of str, optional) – The email addresses of the receivers // recipients.
drymail.stringify_address(address)[source]

Converts an address into a string in the “John Doe” <john@example.com>” format, which can be directly used in the headers of an email.

Parameters:address (str or (str, str)) – An address. Can be either the email address or a tuple of the name and the email address.
Returns:Address as a single string, in the “John Doe” <john@example.com>” format. Returns address unchanged if it’s a single string.
Return type:str
drymail.stringify_addresses(addresses)[source]

Converts a list of addresses into a string in the “John Doe” <john@example.com>, “Jane” <jane@example.com>” format, which can be directly used in the headers of an email.

Parameters:addresses ((str or (str, str)) or list of (str or (str, str))) – A single address or a list of addresses which is to be converted into a single string. Each element can be either an email address or a tuple of a name and an email address.
Returns:The address(es) as a single string which can be directly used in the headers of an email.
Return type:str