Skip to main content

IMAP backend for Django mail package

Project description

Django IMAP backend

PyPI version

IMAP back-end for django.core.mail package, aimed for uploading messages to specif mailboxes, instead of sending it over SMTP (or other Django email backend). Useful for debugging without fancy services like mailtrap.io. Library is capable of uploading messages to multiple accounts at once (one email to multiple mailboxes or accounts).

Motivation

In last few months I worked on project where we have to send a lot of emails to different mailboxes. We used fake (and after migration real) e-mail addresses in our staging environment. It was hard to debug these messages without services like mailtrap (for which we just didn't want to pay, even it's a pretty cool product, client's budget is client's budged).

We came up with the idea of uploading ready-to-send emails to IMAP user instead of sending it.

Installation

# Using pip
pip install django-imap-backend

# Using poetry
peotry add django-imap-backend

# Using setup.py
python setup.py install

Configuration

Firstly, have to specify django_imap_backend.ImapBackend as your EMAIL_BACKEND in settings.py. Than you need to add configuration for your mailboxes in EMAIL_IMAP_SECRETS list. Your's setings.py should looks like this:

EMAIL_BACKEND = 'django_imap_backend.ImapBackend'
EMAIL_IMAP_SECRETS = [
    {
        'HOST': 'imap.example.com',
        'PORT': None,  # default 143 and for SSL 993
        'USER': 'artuhur.dent',
        'PASSWORD': 'TheQuestion42',
        'MAILBOX': 'my_project',  # Created if not exists
        'SSL': False  # Default
    }
]

Made with ❤️ and ☕️ by Jakub Dubec & BACKBONE s.r.o.

Changelog

0.2.3 : 2020-07-19

  • Fix: Version files update 🤦‍♀️ Once again...

0.2.2 : 2020-07-19

  • Fix: Version files update 🤦‍♀️

0.2.1 : 2020-07-19

  • Fix: Fallback to default Mailbox if configuration is not present

0.2.0 : 2020-07-10

  • Change: EMAIL_IMAP_MAILBOXES renamed to EMAIL_IMAP_SECRETS because of security (we don't want to show IMAP configuration in Django debug mode)
  • Change: sensitive_variables decoration in IMAP client

0.1.1 : 2020-07-05

Fix PyPi release (shit happens).

0.1.0 : 2020-07-05

Initial version SSL and support for multiple IMAP accounts.

Download files

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

Source Distribution

django-imap-backend-0.2.3.tar.gz (4.0 kB view hashes)

Uploaded Source

Built Distribution

django_imap_backend-0.2.3-py3-none-any.whl (5.2 kB view hashes)

Uploaded Python 3

Supported by

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