tornadomail

Asynchronous email sending library for Tornado. Port of django.mail.


Keywords
tornado, mail, tornadomail, asyncmail
License
Apache-2.0
Install
pip install tornadomail==0.1.2

Documentation

Tornado mail

Asynchronous email sending(SMTP) library for Tornado. Port of django.mail.

Installation

Using pip: pip install tornadomail From source: git clone git://github.com/equeny/tornadomail.git; cd tornadomail; python setup.py install

Usage

EmailMessage, EmailMultiAlternatives are almost identical to django classes, except send function is async and can receive callback argument.

from tornadomail.message import EmailMessage, EmailMultiAlternatives
from tornadomail.backends.smtp import EmailBackend


class Application(tornado.web.Application):
    @property
    def mail_connection(self):
        return EmailBackend(
            'smtp.gmail.com', 587, '<your google mail>', '<your google password>',
            True
        )

class MainHandler(tornado.web.RequestHandler):

    @property
    def mail_connection(self):
        return self.application.mail_connection

    def get(self):
        self.render("index.html")

    def post(self):

        def _finish(num):
            print 'sent %d message(s)' % num
            self.render("index.html")

        message = EmailMessage(
            self.get_argument('subject'),
            self.get_argument('message'),
            '<your google mail>',
            [self.get_argument('email')],
            connection=self.mail_connection
        )
        message.send()#callback=_finish)
        self.render("index.html")

Requirements

The following two python libraries are required

Issues

Please report any issues via github issues