Skip to main content

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.1.1 (released 2020-06-19)

  • Add support for url quoted usernames/passwords in SMTP urls

1.1.0 (released 2020-06-18)

  • Add support for sending through commandline MTAs (sendmail etc)

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)

Release files for mailsend 1.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mailsend 1.1.1
File Size Uploaded
mailsend-1.1.1.tar.gz 9.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mailsend 1.1.1
File Interpreter ABI Platform
mailsend-1.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 18.7 kB

Release files / mailsend-1.1.1.tar.gz

Download URL mailsend-1.1.1.tar.gz
Size 9.0 kB
Tags Source
SHA-256 checksum
How to use checksums
503cbff300537ab67d61db03ae220bce886494b060fc3b88fbc02175df3b2d4a
BLAKE2b-256 checksum
How to use checksums
514213b2b29accdf8b228b52917acf73e4cf2d52f37c3e5ca4e6a82d4ca450a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.7

Release files / mailsend-1.1.1-py3-none-any.whl

Download URL mailsend-1.1.1-py3-none-any.whl
Size 9.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df9d220a409bf1ef5010150f087f4c96861013b8393de14c2b9cb38580a059bc
BLAKE2b-256 checksum
How to use checksums
2b6db8524750064222d20347fb4fefc9f93a386ad3c0640c88ea82a21d85ffaa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.8.0 tqdm/4.41.1 CPython/3.7.7

Release history Release notifications | RSS feed

2.0.0

2 release files

This release

1.1.1 This release

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

1 release file

0.1.1

1 release file

0.1

1 release file

0.0

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page