django-hijackemail

Reroute outgoing mail (for use in dev/testing/staging environments)


License
MIT
Install
pip install django-hijackemail==1.0.0

Documentation

django-hijackemail

This app fills a very specific use case: you want to test email delivery in a QA environment and your clients, as admins, want to receive real emails, but you don't want the QA process to trigger emails to real end users.

With a couple settings, you can ensure only email to specified addresses will go to the original recipients, and all others will go to a catch-all address or domain.

Installation

pip install django-hijackemail

Add hijackemail to your INSTALLED_APPS. In your environment's settings file, set your EMAIL_BACKEND to hijackemail.backends.HijackEmailBackend.

Then configure the settings below as necessary.

Settings

HIJACK_EMAIL_BACKEND
A string represented the dotted path to the actual email backend used to send messages. Default is django.core.mail.backends.smtp.EmailBackend.
HIJACK_EMAIL_TRANSFORMATION

A function which takes an email address, and returns a transformed version of it.

The default transformation converts john.doe@example.com to john.doe-at-example.com@local.

HIJACK_EMAIL_REPLACEMENT
Instead of transforming the original email, just send all email to this address. Default is None.
HIJACK_EMAIL_DOMAIN
Use the default transformation with this catchall domain. Default is "local".
HIJACK_EMAIL_EXCLUDE
A list of email addresses that should not be hijacked. Default is empty list.