Skip to main content

A Drop in Replacement for default django email backend based on Amazon SES

Project description

Build Status codecov

Django Ses

Another Django Email Backend on top of Amazon Simple Email Service (SES). Supports Django 1.9, 1.10, 1.11, 2.0, 2.1 . Using the latest boto3 to make API Calls, Tested using moto

What is this package about

Every web application needs to send email at some point, may it be verification, password resets, updates etc..., Django by default supports SMTP protocol, simply specify smtp credentials and you are ready to go. But when you use Amazon Services such as SES the preferred way is to access it via its API.

So Here it is guys. Simply install it, give the SES credentials, and start sending Emails. More over if your application is hosted in AWS first ~60000 emails are free every month

Table of Contents

Installation

This package is available via pip, So install it using pip

pip install django-ses

and add it in your INSTALLED_APPS section of settings.py

INSTALLED_APPS = [
    'django_ses',
     ...
]

SES Credential Setup

Obviously you need to have access to an AWS SES account, generate credentials by following this guide or if you already have access keys use it.

in your settings.py add it as follows

SES_ACCESS_KEY = 'xxx'
SES_SECRET_KEY = 'xxx'
SES_REGION_NAME = 'us-east-1'  

SES_REGION_NAME is optional defaults to us-east-1

You need to verify domain or verify email in order to send emails outside

Usage

Once the setup is done you can send emails as usual, your existing calls to emails should work without any modifications

example 1 - Using send_mail()

send_mail(subject="Test Subject", message="Message", from_email="from@example.com", recipient_list=['to@example.com'])

example 2 - Using EmailMessage

email = EmailMessage(
    'Subject 1',
    'Body1 goes here',
    'from@example.com',
    ['to1@example.com', 'to2@example.com'],
    reply_to=['another@example.com'],
)

email.send()

https://docs.djangoproject.com/en/2.1/topics/email for more details

TODO

  • Pre Send, Post Send Signals

Contribution

  • Submit issues to Github Issues
  • Submit patches to the develop branch
  • Kindly write tests to justify any additions

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_ses_email_backend-0.0.1.tar.gz (3.2 kB view hashes)

Uploaded Source

Built Distribution

django_ses_email_backend-0.0.1-py3-none-any.whl (4.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