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 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'

[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.

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

Uploaded Source

Built Distribution

django_mail_panel-1.2.4-py2.py3-none-any.whl (15.0 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

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

File hashes

Hashes for django-mail-panel-1.2.4.tar.gz
Algorithm Hash digest
SHA256 955c1e574fc521ee6a96e9320bdd69fed540ab83c7d7287d67dfa353ecef1dd6
MD5 4d577f96c58752722289d467cd85299d
BLAKE2b-256 50a9aeb61ff6d74efc3850b817769d6d81b7d94bc087c62a224b8bbf1127e58e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: django_mail_panel-1.2.4-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.0 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/44.0.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.8.0

File hashes

Hashes for django_mail_panel-1.2.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c915bcb91385d752e79f6ccc5370509075e0c0dc8f6869aca73bab8bb6667e3b
MD5 35b5e106bf150719fdb7c9c9cd9e5964
BLAKE2b-256 b82e546f247f6bbc202336b4b74036b785548704460e5d691a9f4adc77635a5f

See more details on using hashes here.

Supported by

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