Skip to main content

Django Debug Toolbar - Mail Panel

Build Status

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.

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-3.2.6.tar.gz (15.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-3.2.6-py3-none-any.whl (17.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django-mail-panel-3.2.6.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.1 Darwin/20.3.0

File hashes

Hashes for django-mail-panel-3.2.6.tar.gz
Algorithm Hash digest
SHA256 f5265339f26ab0d1fa86a9c5e48688b5cc3c18099e6bab2183cb522e8022dda8
MD5 fff41435e46beb23f16acf635f40d30a
BLAKE2b-256 81798e47a2b9750b6c665b1f3e5d7f82275c8b4265bc0d96b925dbc448a843fb

See more details on using hashes here.

File details

Details for the file django_mail_panel-3.2.6-py3-none-any.whl.

File metadata

  • Download URL: django_mail_panel-3.2.6-py3-none-any.whl
  • Upload date:
  • Size: 17.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.4 CPython/3.9.1 Darwin/20.3.0

File hashes

Hashes for django_mail_panel-3.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b2d0823e500c881f185b423166c62c40e5d48a23d8cf05c2c541f3b45cfbe85a
MD5 f5033e5f548e400ae953a3f014e8bae7
BLAKE2b-256 53fe3c188f8f8b973ef1b7b1251746c6ee6cd73c1b24ac44f0c1afb17a189377

See more details on using hashes here.

Release history Release notifications | RSS feed

6.0.0

2 files

4.1.1

2 files

4.1

2 files

4.0.4

2 files

4.0.3

2 files

4.0.2

2 files

4.0.1

2 files

4.0.0

2 files

This release

3.2.6 This release

2 files

3.2.5

2 files

3.2.4

2 files

3.2.3

2 files

3.2.2

2 files

3.2.1

2 files

3.2

2 files

3.1

2 files

1.2.5

2 files

1.2.4

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

1 file

1.2.0

2 files

1.1.0

2 files

1.0.7

2 files

1.0.6

2 files

1.0.5

1 file

1.0.4

1 file

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

Supported by

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