Skip to main content

Send emails via a GSuite Service-account.

Project description

GSuite Email Backend

Downloads GitHub release (latest by date) GitHub issues Documentation Status

This package allows to use Django's send_mail command to send emails through GSuite account.

It requires a serviceaccount credential created in Google coud console, The crendential file need to have https://www.googleapis.com/auth/gmail.send scope.

Follow this tutorial to create the credentials file, make sure to add https://www.googleapis.com/auth/gmail.send scope.

Installation

pip install django-gsuite-email

Quick start

1. Add it to installed apps in setings.py

INSTALLED_APPS = [
    ...
    'django_gsuite_email',
    ...
]

2. Set the Email EMAIL_BACKEND setting

EMAIL_BACKEND = 'django_gsuite_email.GSuiteEmailBackend'

3. Set location of credentials file.

To do this, either set GSUITE_CREDENTIALS_FILE environment variable.
OR
set GSUITE_CREDENTIALS_FILE in settings.py

GSUITE_CREDENTIALS_FILE="/path/to/credentials/file.json"
GSUITE_USER_FROM_EMAIL = False  # use the user of from_email if True. Default value False.
GMAIL_USER = 'user@domain'      # default user if GSUITE_USER_FROM_EMAIL is not True. Default value None.
GMAIL_SCOPES = ['https://www.googleapis.com/auth/gmail.send', ... ] # Default value ['https://www.googleapis.com/auth/gmail.send', ]

Note: GSUITE_CREDENTIALS_FILE in settings.py will take precedence over environment variable.

4. Send emails

from django.core.mail import send_mail

send_mail(
    'Subject here',
    'Here is the message.',
    'from@example.com',
    ['to@example.com'],
    fail_silently=False,
)

Supported by

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