Django EmailHub 0.0.4 documentation¶
Django EmailHub is a application that bring advanced email functionnalities to Django such as templates, batch sending and archiving.
Note: This is a work in progress and in early development stage.
- Getting started
- Python API
- Management commands
- Generic Views
Not actual inboxes, but emails are (optionally) linked to users model.
This makes it possible to build an inbox view for users where they can see a copy of all emails sent to them.
This is accomplished in two ways, first when using the EmailHub API:
And when using EmailHub’s email backends, it will look for user emails that matches the destination email and link them.
Sending email right away is rarely a good idea, having a batch sending approach prevents many headaches down the road.
It won’t hang your frontend process if the SMTP is slow to respond.
It allows to have throttling rules to avoid flooing the SMTP.
Finally, it allow to introduce the draft state feature.
The draft mode works somewhat like standard email draft, but with automated emails.
When a template email is sent and draft mode is enabled, the email isn’t sent right away. It is only saved in db where it can be edited and sent at a later time.
This allows to create new email templates and review / correct outgoing emails before they are actually sent to actual customers.
When the template is stable, draft mode can be disabled and be sent directly.
Email templates are can be defined in the admin. They support:
- variables (they are actual django templates)
- preset signatures
- overriding default send from email
- allow or block draft mode
- django-material theme
They also integrate CodeMirror to highlight template variables and HTML:
This screenshot is with the Django-material theme.
EmailHub provide generic views for
EmailMessage for viewing, editing and
listing. You can consult the Generic Views documentation here.
Email templates can (or not) use signature templates defined in the admin.
Django EmailHub tries to stay compatible with the followings apps:
- django-anymail (refer to backend settings for integration)
Don’t hesitate to create a pull request to integrate you django app, I will gladly merge it!
You might also want to consider django-post-office which has overlapping features with EmailHub.