| Info: | A Django application to send email using django's templating system |
|---|---|
| Author: | Benoît Bar (http://github.com/benoitbar, http://twitter.com/benoitbar) |
pip install django-template-mail
django-template-mail ships with same backends as Django (https://docs.djangoproject.com/en/dev/topics/email/#email-backends). Just replace django.core.mail by templatemail
EMAIL_BACKEND = 'templatemail.backends.smtp.EmailBackend'
By default, django-template-backend uses a minimalist process to convert HTML into plain text. I suggest you to use html2text (https://github.com/aaronsw/html2text)
EMAIL_HTML2TEXT = 'html2text.html2text'
You can also write your own method and use it
EMAIL_HTML2TEXT = 'your.module.yourhtml2textmethod'
To send email with django-template-mail you simply should use the method described in the Django documentation (https://docs.djangoproject.com/en/dev/topics/email/) and replace the message attribute as a tuple ('directory_template/template.html', {'key': 'value'}, context_instance)
from django.core.mail import send_mail
send_mail(
'Welcome',
(
'mail/welcome.html',
{
'username': request.user.username,
'full_name': request.user.get_full_name(),
'signup_date': request.user.date_joined
}
),
'[email protected]',
['[email protected]'],
fail_silently=False
)
django-template-mail looks into django template directories/loaders
<p>Hi {{full_name}},</p>
<p>
You just signed up using:
<ul>
<li>username: {{username}}</li>
<li>join date: {{signup_date}}</li>
</ul>
</p>
<p>Thanks!</p>