Skip to main content

Non-blocking smtp client to work with tornado web framework 4.0 and above

This library is a port of Python smtplib to tornado non-blocking IOstream implementation.

The below example was taken and modified from Python docs’ example:

#!/usr/bin/env python3

from tornado_smtpclient import client

from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# create SMTP client
s = client.SMTPAsync()
yield s.connect('your.email.host',587)
yield s.starttls()
yield s.login('username', 'password')

# me == my email address
# you == recipient's email address
me = "my@email.com"
you = "your@email.com"

# Create message container - the correct MIME type is multipart/alternative.
msg = MIMEMultipart('alternative')
msg['Subject'] = "Link"
msg['From'] = me
msg['To'] = you

# Create the body of the message (a plain-text and an HTML version).
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.python.org"
html = """\
<html>
<head></head>
<body>
<p>Hi!<br>
How are you?<br>
Here is the <a href="http://www.python.org">link</a> you wanted.
</p>
</body>
</html>
"""

# Record the MIME types of both parts - text/plain and text/html.
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')

# Attach parts into message container.
# According to RFC 2046, the last part of a multipart message, in this case
# the HTML message, is best and preferred.
msg.attach(part1)
msg.attach(part2)

# sendmail function takes 3 arguments: sender's address, recipient's address
# and message to send - here it is sent as one string.
yield s.sendmail(me, you, msg.as_string())
yield s.quit()

Download files

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

Source Distribution

tornado-smtpclient-0.1.5.tar.gz (5.7 kB view details)

Uploaded Source

File details

Details for the file tornado-smtpclient-0.1.5.tar.gz.

File metadata

File hashes

Hashes for tornado-smtpclient-0.1.5.tar.gz
Algorithm Hash digest
SHA256 fb56bf593dcaa863305bff6d286ca8363065cb3ec5620da863b0d6539a9534dd
MD5 875329155876b2f5d356e9a9ceb9a732
BLAKE2b-256 3a8a85b41b7f14d88da6e66bbff072de0297feca2bc5509f1f0c435fdfd5c744

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.5 This release

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

0.1.1

1 file

0.1.0

1 file

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