Skip to content

Latest commit

 

History

History
122 lines (79 loc) · 3.84 KB

README.rst

File metadata and controls

122 lines (79 loc) · 3.84 KB

Djrill: Mandrill Transactional Email for Django

Djrill integrates the Mandrill transactional email service into Django.

In general, Djrill "just works" with Django's built-in django.core.mail package. It includes:

  • Support for HTML, attachments, extra headers, and other features of Django's built-in email
  • Mandrill-specific extensions like tags, metadata, tracking, and MailChimp templates
  • Optional support for Mandrill inbound email and other webhook notifications, via Django signals
  • An optional Django admin interface

Djrill is released under the BSD license. It is tested against Django 1.3---1.7 (including Python 3 and PyPy support with Django 1.5+).

Google App Engine compatibility.

  • Requests does not yet support AppEngine since it makes assumption about various filesystem things to load configuration files which don't exist on AppEngine.
  • This is a patch for Djrill to work with Google App Engine applications.
  • Replace all occurrences of Requests and use URL fetch instead.
  • Note that urllib3 includes App Engine support.
build status on Travis-CI

Resources

Djrill 1-2-3

  1. Install Djrill from PyPI:

    $ pip install djrill
  2. Edit your project's settings.py:

    INSTALLED_APPS = (
        ...
        "djrill"
    )
    
    MANDRILL_API_KEY = "<your Mandrill key>"
    EMAIL_BACKEND = "djrill.mail.backends.djrill.DjrillBackend"
  3. Now the regular Django email functions will send through Mandrill:

    from django.core.mail import send_mail
    
    send_mail("It works!", "This will get sent through Mandrill",
        "Djrill Sender <[email protected]>", ["[email protected]"])

    You could send an HTML message, complete with custom Mandrill tags and metadata:

    from django.core.mail import EmailMultiAlternatives
    
    msg = EmailMultiAlternatives(
        subject="Djrill Message",
        body="This is the text email body",
        from_email="Djrill Sender <[email protected]>",
        to=["Recipient One <[email protected]>", "[email protected]"],
        headers={'Reply-To': "Service <[email protected]>"} # optional extra headers
    )
    msg.attach_alternative("<p>This is the HTML email body</p>", "text/html")
    
    # Optional Mandrill-specific extensions:
    msg.tags = ["one tag", "two tag", "red tag", "blue tag"]
    msg.metadata = {'user_id': "8675309"}
    
    # Send it:
    msg.send()

See the full documentation for more features and options.