Skip to main content

django-submail

An easy django email backend to send email using Submail’s python Mail API.

Requirements

Django >= 1.8. Django with other versions are not tested.

Installation

Install the backend from PyPI:

pip install django-submail

Add the following lines to your project’s settings.py or your local settings:

EMAIL_BACKEND = "smbackend.SubmailBackend"
SUBMAIL_APP_ID = "Your Submail APPID"
SUBMAIL_APP_KEY = "Your Submail APPKey"

Usage

If you use send_mail method, you can simply do it by, for example:

from django.core.mail import send_mail

send_mail(
    "Your Subject",
    "This is a pure text email body.",
    "Dong Zhuang <hello@foo.com>",
    ["dongzhuang@bar.com"]
    )

If you want to use the EmailMessage class, then:

from django.core.mail import EmailMessage

mail = EmailMultiAlternatives(
    subject="Your Subject",
    body="This is a pure text email body.",
    from_email="Dong Zhuang <hello@example.com>",
    to=["dongzhuang@foo.com"],
    headers={"Reply-To": "dongzhuang@bar.com"}
    )

mail.send()

If you want to use the EmailMultiAlternatives class, then:

from django.core.mail import EmailMultiAlternatives

mail = EmailMultiAlternatives(
    subject="Your Subject",
    body="This is a pure text email body.",
    from_email="Dong Zhuang <hello@example.com>",
    to=["dongzhuang@foo.com"],
    headers={"Reply-To": "dongzhuang@bar.com"}
    )

mail.attach_alternative(
    "<p>This is an HTML email body</p>", "text/html")

mail.send()

Sometimes you need to send some other emails using APPID other than the default SUBMAIL_APP_ID set in settings.py, you can use add SUBMAIL_APP_ID and SUBMAIL_APP_KEY keys in header, for example:

from django.core.mail import EmailMultiAlternatives

mail = EmailMultiAlternatives(
  subject="Your Subject",
  body="This is a simple text email body.",
  from_email="Dong Zhuang <hello@example.com>",
  to=["dongzhuang@foo.com"],
  headers={
    "Reply-To": "dongzhuang@bar.com",
    "SUBMAIL_APP_ID": settings.ANOTHER_APP_ID,
    "SUBMAIL_APP_KEY": settings.ANOTHER_APP_KEY}
)

mail.attach_alternative("<p>This is an HTML email body</p>", "text/html")

mail.send()

DEMO

A demo is included in the repository, you can clone the git and run it locally.

You can optionally run the demo using virtualenv.

pip install virtualenv
virtualenv venv
venv/scripts/activate

Then

pip install django
pip install django-submail
git clone https://github.com/dzhuang/django-submail.git
cd django-submail/demo
python manage.py migrate

Make a copy of example local settings:

cd demo
cp settings_local.py.example settings_local.py
vi settings_local.py

Edit params in settings_local.py according to your own submail app, and edit demo/test_smbackend/views.py if necessary, then run the dev server:

cd ..
python manage.py runserver

and visit http://127.0.0.1:8000 to see the result.

TODOs

  • Support Submail’s mail/xsend API

  • Support Submail’s addressbook

LICENSE

The MIT License.

Contribution

Django-submail is wholly open source and welcomes contributions of any kind. Feel free to either extend it, report bugs, or provide suggestions for improvements. The author of can be contacted at dzhuang.scut@gmail.com.

Metadata

Release files for django-submail 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-submail 1.4.0
File Size Uploaded
django-submail-1.4.0.tar.gz 12.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-submail 1.4.0
File Interpreter ABI Platform
django_submail-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 32.2 kB

Release files / django-submail-1.4.0.tar.gz

Download URL django-submail-1.4.0.tar.gz
Size 12.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1ea99adc3c91e10c24d8d2115b94d6c9491401cb3901a9a90d312ea0ce9eb907
BLAKE2b-256 checksum
How to use checksums
5330733180620f8052554e6e4aa512ce0bf245e98f944e5f91ef127b5ffdd747
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.5

Release files / django_submail-1.4.0-py3-none-any.whl

Download URL django_submail-1.4.0-py3-none-any.whl
Size 20.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9937683a9a3201c7a98846fc4e90b951879cc547d8623a5bc410f74789eaccff
BLAKE2b-256 checksum
How to use checksums
cd7a2f4fd6dfe6e9c05ab54e5feb6fe3a5beb408d42ec571d56538e6bb5a3ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.5

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

3 release files

1.2.2

2 release files

1.2.1

3 release files

1.2.0

3 release files

1.1.0

3 release files

1.0.0

3 release files

0.0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page