Skip to main content

A panel for django-debug-toolbar that allows for viewing of recently sent email.

Project description

Django Debug Toolbar - Mail Panel

Build Status

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, and cutters 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_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)

Project details


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.1.0.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

django_mail_panel-1.1.0-py2.py3-none-any.whl (13.6 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: django-mail-panel-1.1.0.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for django-mail-panel-1.1.0.tar.gz
Algorithm Hash digest
SHA256 a1f160118eca9899185d6321400c4a04d1aca2d5c52c2ba91224dd8d5767cb5f
MD5 d18f425ded844017a8222bcbe2ee6ddb
BLAKE2b-256 40d6b25a22beef249cb783276010db419154982fa9895e6a812dad845f6fbdf7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_mail_panel-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 13.6 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.7.0

File hashes

Hashes for django_mail_panel-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 785f5097b3b772ceeff3c918bb16363e6a9fdd65fe60589a1d562c72d60a1690
MD5 891b2570468214594eb4902f6be9c48c
BLAKE2b-256 e8f4bcdbadfd52512c34fdfb11e615f0798533e68df316b64b97c4fe2a754b1f

See more details on using hashes here.

Supported by

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