Django Mail Viewer
View emails in development without actually sending them.
The full documentation is at https://django-mail-viewer.readthedocs.io.
Install Django Mail Viewer:
pip install django-mail-viewer
Add it to your INSTALLED_APPS:
INSTALLED_APPS = ( ... 'django_mail_viewer', ... )
Add Django Mail Viewer's URL patterns:
# You may want to only include this in development environments # Django 2 urlpatterns = [ ... path('', include('django_mail_viewer.urls')), ... ] # Django 1.11 urlpatterns = [ ... url(r'^', include('django_mail_viewer.urls')), ... ]
Set your EMAIL_BACKEND in settings.py:
EMAIL_BACKEND = 'django_mail_viewer.backends.locmem.EmailBackend'
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate (myenv) $ pip install tox (myenv) $ tox
- Passthrough backend - store the email for display in the views but also pass to another backend which may actually send
- Redis backend using Redis specific functionality for cleaner code and less risk of bugs vs the django cache backend
- Memcached backend
- File based backend - store each email as its own file
- Database backend - model to store emails and attachments
- Other backends? ElasticSearch? MongoDB?
- Separate views for each of html, plaintext, attachements, etc. to allow for more customization of display?
Tools used in rendering this package: