It is a wrapper for Django that allows to send mail via Mailgun`s API.
Project description
It is a wrapper for Django that allows to send mail via Mailgun`s API. For the reference of Mailgun`s API, please visit api for sending .
For the Django`s email implementation, please visit sending email .
This wrapper sends request to Mailgun`s mime API to efficiently use Django`s EmailMessage instance. In this case we just put mime message, prepared by django`s EmailMessage instance, and attach it as a file. After receiving your message Mailgun`s API will do the rest of job.
This wrapper also supports Mailgun`s extra headers, which can be very useful. So if the wrapper finds such header it will placed to request`s data. But please, notice that the wrapper does not validates Mailgun`s extra headers. Because after starting validating extra headers, it will stop to be simple and tiny. :-)
Requirements
Python 3.x Django 1.7+ requests for Python
Installation
$ pip install django-mailgun-mime
Quick start
Make an account at Mailgun;
Set up correctly Mailgun`s records at your DNS provider. (Just follow for the Mailgun instruction);
Wait until Mailgun will check and approve your settings;
If you fail go back to point 2;
Set up at yours project settings these variables:
EMAIL_BACKEND = 'django_mailgun_mime.backends.MailgunMIMEBackend'
MAILGUN_API_KEY = 'your api key'
MAILGUN_DOMAIN_NAME = 'your.domain'
# optionally:
DEFAULT_FROM_EMAIL = 'postmaster@your.domain'
SERVER_EMAIL = 'admin@your.domain'
Now you can send email via Mailgun API. Also you can send email through Mailgun SMTP service. In this case just use Django`s SMTP backend.
Examples
Firstly, we need to import some dependencies:
from django.template.loader import render_to_string
from django.conf import settings
from django.core.mail import send_mail, EmailMultiAlternatives
from django.core.mail import get_connection
A simple email sending example:
# We will use these paths ahead
path_to_txt = 'path/to/template.txt'
path_to_html = 'path/to/template.html'
s = 'Simple test for Mailgun awesomeness'
m = 'Congratulations! Now you know Mailgun awesomeness!'
context = {'title': s, 'message': m}
txt = render_to_string(path_to_txt, context)
html = render_to_string(path_to_html, context)
send_mail(s, txt, settings.DEFAULT_FROM_EMAIL, ['to@example.com'], html_message=html)
Example with Mailgun extra headers and file attachment:
s = 'Testing Mailgun awesomeness!'
m = 'Message content for email with tracking.'
context = {'title': s, 'message': m}
txt = render_to_string(path_to_txt, context)
html = render_to_string(path_to_html, context)
msg = EmailMultiAlternatives(s, txt, settings.DEFAULT_FROM_EMAIL,
['to@example.com'])
msg.attach_alternative(html, 'text/html')
msg.attach_file('path/to/file')
msg.extra_headers['o:tracking-opens'] = 'yes'
msg.extra_headers['h:Reply-To'] = 'from@example.com'
msg.send()
Example with specifying connection:
api_key = 'API_KEY_FROM_MAILGUN'
domain = 'yours.domain.name.checked.and.set.at.mailgun'
connection = get_connection('django_mailgun_mime.backends.MailgunMIMEBackend',
api_key=api_key,
domain=domain)
s = 'Testing specific connection!'
m = 'Well... You receive it. What now?'
context = {'title': s, 'message': m}
txt = render_to_string(path_to_txt, context)
html = render_to_string(path_to_html, context)
send_mail(s, txt, settings.DEFAULT_FROM_EMAIL, ['to@example.com'],
connection=connection, html_message=html)
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-mailgun-mime-0.1.4.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36104c6cff7d1092eeadc7b012acf6050cc4ea1b6bae203aa883d1e69227f3b4 |
|
MD5 | eb24a567601fb520c5d43434a4d23b6f |
|
BLAKE2b-256 | e48d36520d3911f1c88db6fb85c07089985364600cac7b7eb68bac85f1d70c71 |
Hashes for django_mailgun_mime-0.1.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b696eef4b586fc2f08007607c5c850e3550c46a68158540a454f146aacbdcc38 |
|
MD5 | 4a0ffcbb7a715dce54492f32752a61ed |
|
BLAKE2b-256 | 510bf8f46a8a9f0b3ba55c5a41ffd7e16d30a702b3d33c76ce8b1889c6188660 |