Skip to main content

Fork of tinysmtp with bug fixes and python 3 compatibility

Project description

This is a fork of Rick Harris’s tinysmtp package with a few fixes and Python 3 compatibility.

Example:

with Mail().connect() as mail:
    msg = Message(
        'alice@example.com', 'Subject', ['bob@example.com'], body='body')
    mail.send(msg)

Connections may be configured from a URL specified in an environment variable:

export MAILSEND_URL="smtp+tls://user:password@server.example.org/"

Or as individual variables:

export MAILSEND_HOSTNAME=server.example.org
export MAILSEND_PORT=25

Or in code:

mail = Mail('smtp://server.example.org/')
mail2 = Mail('server.example.org',
             port=25,
             ssl=True,
             username='x',
             password='x')

Call mail.send to send a message:

mail = Mail('smtp://server.example.org/')
mail.send(sender='alice@example.com',
          recipients=['bob@example.com', 'charlie@example.com'],
          body='Hello everyone!',
          html='<p>Hello everyone!</p>',
          subject='Hello')

Or use the message class to construct messages piecemeal:

msg = Message('alice@example.com', 'Hello!')
msg.body = 'Hello'
msg.recipients = ['bob@example.com']
msg.cc = ['charlie@example.org']
msg.bcc = ['dina@example.org']

mail = Mail('smtp://server.example.org/')
mail.send(msg)

To send multiple messages in a single connection, use Mail.connect:

with mail.connect() as conn:
    conn.send(msg1)
    conn.send(msg2)

1.0.3 (released 2019-12-02)

  • Bugfix: no longer request the SMTPUTF8 extension for addresses that do not appear in SMTP commands.

1.0.2 (released 2019-11-28)

  • Fixed broken 1.0.1 release

1.0.1 (released 2019-11-28)

  • Bugfix: Mail.send() now sets the envelope from/to addresses correctly from message headers in the form “Name <address@example.com>”

1.0.0 (released 2019-11-27)

  • Dropped Python 2 support
  • Feature: Mail.send() now accepts optional keyword only arguments envelope_from and envelope_to.

0.1.5 (released 2019-06-18)

  • Bugfix: don’t add a duplicate Message-Id header if one is provided

0.1.4 (released 2017-08-27)

  • Bugfix: extra_headers option is now python 3 compatible

0.1.3 (released 2017-04-19)

  • Added ability to send stdlib email.message.Message objects via mailsend

0.1.2 (released 2016-09-02)

  • The mime structure of HTML emails is now compatible with Outlook 2011
  • The SMTPUTF8 extension is requested when messages contain utf-8 addresses. (feature is available in Python 3.5 only)

0.1.1 (released 2015-12-21)

  • Fixes for compatibility with envparse-0.2

0.1 (released 2015-12-19)

  • Forked from https://github.com/rconradharris/tinysmtp
  • Added configuration via URL (eg Connection('smtp://user@example.org'))
  • Various bug fixes
  • Added rewrite_to argument to Mail class constructor method. This causes all messages to be rewritten to the given address(es), and is expected to be used for development/testing.
  • Added bcc argument to Mail class constructor method. This causes all messages to be bcc’d to the given address(es).
  • Added suppress_send argument to the Mail class constructor. This causes messages to not be sent (but may be still accessed via Mail.subscribe)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for mailsend, version 1.0.3
Filename, size File type Python version Upload date Hashes
Filename, size mailsend-1.0.3-py3-none-any.whl (9.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size mailsend-1.0.3.tar.gz (9.2 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page