Note : This is a work in progress and in early development stage.

Django EmailHub is a application that bring advanced email functionnalities to Django such as templates, batch sending and archiving.

Inboxes¶ 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: EmailFromTemplate ( 'welcome-message' ) . send_to ( user ) And when using EmailHub’s email backends, it will look for user emails that matches the destination email and link them.

Batch sending¶ 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.

Draft state¶ 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¶ Email templates are can be defined in the admin. They support: translations

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: Note This screenshot is with the Django-material theme.

Generic views¶ EmailHub provide generic views for EmailMessage for viewing, editing and listing. You can consult the Generic Views documentation here.

Signature templates¶ Email templates can (or not) use signature templates defined in the admin.