Elegant and simple email library for python
Project description
Emails without pain for python.
What can you do:
Create message:
import emails message = emails.html(html=open('letter.html'), subject='Friday party', mail_from=('Company Team', 'contact@mycompany.com'))
Attach files or inline images:
message.attach( data=open('event.ics'), filename='Event.ics' ) message.attach( data=open('image.png'), filename='image.png', content_disposition='inline' )
Add DKIM easily:
message.dkim( key=open('my.key'), domain='mycompany.com', selector='newsletter' )
Templating:
from emails.template import JinjaTemplate as T message = emails.html(subject=T('Payment Receipt No.{{no}}'), html=T('<p>Dear {{account}} owner! This is a receipt for your subscription...'), mail_from=('ABC', 'robot@mycompany.com')) message.send(to=('John Braun', 'jbraun@gmail.com'), render={'account': 'lavr', 'no':'141051906163'} )
Send without pain and (even) get response:
SMTP = { 'host':'smtp.mycompany.com', 'port': 465, 'ssl': True } r = messages.send(to=('John Braun', 'jbraun@gmail.com'), smtp=SMTP) assert r.status_code == 250
One more thing
Library ships with fairy email-from-html loader. Design email with less pain or even let designers make design:
import emails URL = 'http://_youproject_.github.io/newsletter/2013-08-14/index.html' page = emails.loader.from_url(URL, css_inline=True, make_links_absolute=True) message = emails.html(html=page.html, ...) for mail_to in _get_maillist(): message.send(to=mail_to)
Install
Install from pypi:
$ [sudo] pip install emails
Install on Ubuntu from PPA:
$ [sudo] add-apt-repository ppa:lavrme/python-emails-ppa $ [sudo] apt-get update $ [sudo] apt-get install python-emails
Features
Internationalization & Unicode bodies
DKIM signatures
HTML page loader & CSS inliner
Body and attachments http import
Body & headers preprocessors
TODO
Python3 (almost done)
Documentation
More test coverage
More accurate smtp session handling
Some patches for pydkim performance (i.e. preload key once, not each time)
More genius css inliner
Catch all bugs
ESP integration: Amazon SES, SendGrid, …
deb package (ubuntu package done)
rpm package
How to Help
Library is under development and contributions are welcome!
Open an issue to start a discussion around a bug or a feature.
Fork the repository on GitHub and start making your changes to a new branch.
Write a test which shows that the bug was fixed.
Send a pull request. Make sure to add yourself to AUTHORS.
Background
Library inspired by excellent python-requests and werkzeug library. Some code is from my mailcube.ru experience.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.