Test Email Backend

EmailBackend

EmailBackend is a simple Email backend, that sends all emails to a defined address, no matter what the recipient really is.

This is useful in times of development & testing to prevent mass mails to example.com or existing addresses and to review all email communication.

In order to use it, set this in your local_settings.py:

EMAIL_BACKEND = 'django_libs.test_email_backend.EmailBackend'
TEST_EMAIL_BACKEND_RECIPIENTS = (
    ('Name', 'email@gmail.com'),
)

If you’re using django-mailer don’t forget to add:

MAILER_EMAIL_BACKEND = 'django_libs.test_email_backend.EmailBackend'

WhitelistEmailBackend

WhitelistEmailBackend provides more control over what can be sent where.

To use it, first define the EMAIL_BACKEND_WHITELIST setting::

EMAIL_BACKEND_WHITELIST = [r'.*@example.com']

This setting holds regex patterns which define, which emails may be sent and which are being discarded. The above example will allow every email adress from the example.com domain to be delivered.

If you still want to receive all the discarded emails, you can additionally define TEST_EMAIL_BACKEND_RECIPIENTS like above and set EMAIL_BACKEND_REROUTE_BLACKLIST to True:

EMAIL_BACKEND_REROUTE_BLACKLIST = True
TEST_EMAIL_BACKEND_RECIPIENTS = (
    ('Name', 'email@gmail.com'),
)

With this setup, all recipients, that match one of the whitelisted email patterns will be sent to the correct recipient, but in case it didn’t match, the recipients will be replaced with the ones from the TEST_EMAIL_BACKEND_RECIPIENTS setting.