It is an wrapper for Django that allows to send mail via Mailgun`s API.
Project description
It is an 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.setted.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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | a01453104cb440ccbc91eecb1dfbe66e191d87f84d8f075d7ab0ffbd61d78602 |
|
MD5 | 78a7a8ec01c75d0e1dacb2295a20a021 |
|
BLAKE2b-256 | 222a0f9c76b45f0fa6ac6be5d8149ea5c363726ecbdcc669f324156810752f76 |
Hashes for django_mailgun_mime-0.1.3-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38221be8a1f7fe3a33b5e58eeef96bf62fd481d9de032945af3228a1114dc908 |
|
MD5 | 2307279d3d685ffb77f3164a0c07b92e |
|
BLAKE2b-256 | 1008772d1374b000563e1aaac261c6a2bc57f9351e5af26a171aeb692ded5299 |