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>