GithubHelp home page GithubHelp logo

python-emails's Introduction

python-emails

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', '[email protected]'))

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', '[email protected]'))

message.send(to=('John Braun', '[email protected]'), 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', '[email protected]'), 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)
  • Add "safety stuff" from django (done)
  • Django integration (django.core.mail.backends.smtp.EmailBackend subclass)
  • Flask extension
  • Documentation
  • 100% 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!

  1. Open an issue to start a discussion around a bug or a feature.
  2. Fork the repository on GitHub and start making your changes to a new branch.
  3. Write a test which shows that the bug was fixed.
  4. 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.

https://travis-ci.org/lavr/python-emails.png?branch=master

python-emails's People

Contributors

lavr avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.