Mailing for human beings.


Envelopes is a wrapper for Python’s email and smtplib modules. It aims to make working with outgoing e-mail in Python simple and fun.

Short example

from envelopes import Envelope, GMailSMTP

envelope = Envelope(
    from_addr=(u'from@example.com', u'From Example'),
    to_addr=(u'to@example.com', u'To Example'),
    subject=u'Envelopes demo',
    text_body=u"I'm a helicopter!"

# Send the envelope using an ad-hoc connection...
envelope.send('smtp.googlemail.com', login='from@example.com',
              password='password', tls=True)

# Or send the envelope using a shared GMail connection...
gmail = GMailSMTP('from@example.com', 'password')


Envelopes allows you to easily:

  • Provide e-mail addresses with or without name part.
  • Set text, HTML or both bodies according to your needs.
  • Provide any number of CC and BCC addresses.
  • Set standard (e.g. Reply-To) and custom (e.g. X-Mailer) headers.
  • Attach files of any kind without hassle.
  • Use any charset natively supported by Python’s unicode type in addresses, bodies, headers and attachment file names.

Project status

This project should be considered beta. Proceed with caution if you decide to use Envelopes in production.

Envelopes has been developed and tested with Python 2.7. Currently, Envelopes supports Python 2.6, 2.7 and 3.3.


Envelopes is developed by Tomasz Wójcik.


Envelopes is licensed under the MIT License.

Source code and issues

Source code is available on GitHub at: tomekwojcik/envelopes.

To file issue reports and feature requests use the project’s issue tracker on GitHub.

Table Of Contents

Next topic

Envelopes in Celery example

This Page