Skip to main content

A Django Email Backend for Submail.

Project description

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.

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-submail-1.4.0.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

django_submail-1.4.0-py3-none-any.whl (20.2 kB view details)

Uploaded Python 3

File details

Details for the file django-submail-1.4.0.tar.gz.

File metadata

  • Download URL: django-submail-1.4.0.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.5

File hashes

Hashes for django-submail-1.4.0.tar.gz
Algorithm Hash digest
SHA256 1ea99adc3c91e10c24d8d2115b94d6c9491401cb3901a9a90d312ea0ce9eb907
MD5 fb7e89bd3d9d8797f52477bb6c3c1cde
BLAKE2b-256 5330733180620f8052554e6e4aa512ce0bf245e98f944e5f91ef127b5ffdd747

See more details on using hashes here.

File details

Details for the file django_submail-1.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_submail-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9937683a9a3201c7a98846fc4e90b951879cc547d8623a5bc410f74789eaccff
MD5 c88c41f5982ee495315f0b0e68d0e4e6
BLAKE2b-256 cd7a2f4fd6dfe6e9c05ab54e5feb6fe3a5beb408d42ec571d56538e6bb5a3ae2

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page