Django Debug Toolbar - Mail Panel
Testing and debugging e-mail while developing a Django app has never been pleasant. Sending e-mail 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 e-mail to a valid mailbox incurs a delay as the message is processed though a mail server, and clutters a developer's inbox.
The mail panel attempts to address these problems by providing a way to preview emails within the browser using django-debug-toolbar.
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-mail-panel. Then add the mail_panel app after debug_toolbarto the INSTALLED_APPS setting:
INSTALLED_APPS = (
...
'debug_toolbar',
'mail_panel',
)
and add the panel DEBUG_TOOLBAR_PANELS:
DEBUG_TOOLBAR_PANELS = (
...
'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'
Important: This plugin uses Django's cache backend to store messages. If you are using DummyCache, the mail panel will use a local memory cache, and will reset messages when the server is restarted.
[Optional] 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
[Optional]
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',
]
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):
# your code here
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)
Shameless Plugs
Like Django Mail Panel? Be sure to check out and support these other tools for Mac that will improve your workflow:
Kubermagic - Automate, and script away tedious kubectl commands with Kubermagic; a UI for developers, QA teams, and those starting to learn the ins-and-outs of Kubernetes.
Red - A visual and interactive Redis client, featuring live updating keys, an interactive console, pub/sub, lua script support and much more.
Release files for django-mail-panel 3.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-mail-panel-3.2.6.tar.gz | 15.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_mail_panel-3.2.6-py3-none-any.whl | Python 3 | none | any | Details |
Total release size:32.7 kB
Release files / django-mail-panel-3.2.6.tar.gz
| Download URL | django-mail-panel-3.2.6.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f5265339f26ab0d1fa86a9c5e48688b5cc3c18099e6bab2183cb522e8022dda8
|
|
BLAKE2b-256 checksum How to use checksums |
81798e47a2b9750b6c665b1f3e5d7f82275c8b4265bc0d96b925dbc448a843fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/20.3.0
|
Release files / django_mail_panel-3.2.6-py3-none-any.whl
| Download URL | django_mail_panel-3.2.6-py3-none-any.whl |
|---|---|
| Size | 17.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b2d0823e500c881f185b423166c62c40e5d48a23d8cf05c2c541f3b45cfbe85a
|
|
BLAKE2b-256 checksum How to use checksums |
53fe3c188f8f8b973ef1b7b1251746c6ee6cd73c1b24ac44f0c1afb17a189377
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.4 CPython/3.9.1 Darwin/20.3.0
|