Skip to main content

Build Status Downloads

Screeny

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-mail-panel. Then add the mail_panel app after debug_toolbar to the 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)

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-mail-panel-1.0.3.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_mail_panel-1.0.3-py2.py3-none-any.whl (16.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file django-mail-panel-1.0.3.tar.gz.

File metadata

File hashes

Hashes for django-mail-panel-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6cbd5e8323ec9f8d445e6ed258b743201fa57b07d41d614c65ea9dea3d8c94c2
MD5 45f97bb1357c651436f23e71cadc1f5b
BLAKE2b-256 9c543e7a190afb07860fe400d0796453b5f84b8b07571959d751c16a11f2e270

See more details on using hashes here.

File details

Details for the file django_mail_panel-1.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for django_mail_panel-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 9b87955970af520b629150fbf4cd63548faca25808d260dcbe6de172df4e026e
MD5 522846981777e946dcfe20d129a5ecc2
BLAKE2b-256 188471ab0baf58e3d64771e92dec9bc720dcc67e4d615d3a373479b2bbe95628

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page