A panel for django-debug-toolbar that allows for viewing of recently sent email.
Project description
Screeny
Testing and debugging emails while developing a django app has never been pleasant. Sending emails to a file-based backend requires a user to click through obtusely named files and does not provide a way to preview rendered html. Sending email to a valid mailbox incurs a delay as the email is processed though a mail server, all the while adding clutter to a developer’s inbox, and even occasionally finds itself buried in a spam directory.
The mail panel attempts to address these problems by providing a way to preview emails within the browser window.
This mail panel is released under the Apache license. If you like it, please consider contributing!
Special thanks to @ShawnMilo for the code review.
Installation
To install the mail panel, first install this package with pip install django-debug-toolbar-mail, then add mail_panel after debug_toolbar to INSTALLED_APPS setting:
INSTALLED_APPS = ( ... 'debug_toolbar', 'mail_panel', )
and add the panel DEBUG_TOOLBAR_PANELS:
DEBUG_TOOLBAR_PANELS = ( ... 'mail_panel.panels.MailToolbarPanel', )
If you use the DEBUG_TOOLBAR_PANELS to custom order your panels:
DEBUG_TOOLBAR_PANELS = [ 'debug_toolbar.panels.versions.VersionsPanel', 'debug_toolbar.panels.timer.TimerPanel', 'debug_toolbar.panels.settings.SettingsPanel', 'debug_toolbar.panels.headers.HeadersPanel', 'debug_toolbar.panels.request.RequestPanel', 'debug_toolbar.panels.sql.SQLPanel', 'debug_toolbar.panels.staticfiles.StaticFilesPanel', 'debug_toolbar.panels.templates.TemplatesPanel', 'debug_toolbar.panels.cache.CachePanel', 'debug_toolbar.panels.signals.SignalsPanel', 'debug_toolbar.panels.logging.LoggingPanel', 'debug_toolbar.panels.redirects.RedirectsPanel', 'mail_panel.panels.MailToolbarPanel', ]
Collect static and you’ll be good to go.
./manage.py collectstatic
Configuration
After installation, you now need to redirect mail to the mail toolbar. Change your email backend to the following:
EMAIL_BACKEND = 'mail_panel.backend.MailToolbarBackend'
By default, mail toolbar stores messages for one day before removing them from cache. You can change this with the following setting:
MAIL_TOOLBAR_TTL = 86400 # 1 Day
Testing
To preview emails sent from your test suite, add the email backend override to your tests with the following: from django.test.utils import override_settings
@override_settings(EMAIL_BACKEND='mail_panel.backend.MailToolbarBackend') def test_send_email(self): ...
The backend works similarly to the standard email backend and code should not need to be reworked when using the MailToolbarBackend.
from django.core import mail original_outbox = len(mail.outbox) # Send mail ... assert(len(mail.outbox) == original_outbox + 1)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-mail-panel-1.0.2.tar.gz
.
File metadata
- Download URL: django-mail-panel-1.0.2.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64dd1283ce528f0557331a1fdafb36ebf4a8a6f3d7a012b0a117a4ac9091944e |
|
MD5 | 5ab1aa54de4773ada4eded92b2ad812e |
|
BLAKE2b-256 | 66412a09fec7ddac9d4145c74c71ee03ee6a54e09292fc56ca321ff45ad8abed |
File details
Details for the file django_mail_panel-1.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: django_mail_panel-1.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdfeafa0ccab1213fac45411e8ca034d35bd8b67f761783d89cfb972ab32dd9b |
|
MD5 | 53e5e635c5d14a01162b934f444ac2d7 |
|
BLAKE2b-256 | 4801cbf7fe96c3a7381ac6025842ae07dbf4c098295563526c4b2ed25811dea5 |