Simple django backend to send email using SendGrid's Web API.
Install the backend from PyPI:
pip install sendgrid-djangoAdd the following to your project's settings.py:
EMAIL_BACKEND="sgbackend.SendGridBackend"SENDGRID_API_KEY="Your SendGrid API Key"Done!
fromdjango.core.mailimportsend_mailfromdjango.core.mailimportEmailMultiAlternativessend_mail("Your Subject", "This is a simple text email body.",
"Yamil Asusta <hello@yamilasusta.com>", ["yamil@sendgrid.com"])
# ormail=EmailMultiAlternatives(
subject="Your Subject",
body="This is a simple text email body.",
from_email="Yamil Asusta <hello@yamilasusta.com>",
to=["yamil@sendgrid.com"],
headers={"Reply-To": "support@sendgrid.com"}
)
# Add templatemail.template_id='YOUR TEMPLATE ID FROM SENDGRID ADMIN'# Replace substitutions in sendgrid templatemail.substitutions= {'%username%': 'elbuo8'}
# Attach filewithopen('somefilename.pdf', 'rb') asfile:
mail.attachments= [
('somefilename.pdf', file.read(), 'application/pdf')
]
# Add categoriesmail.categories= [
'work',
'urgent',
]
mail.attach_alternative(
"<p>This is a simple HTML email body</p>", "text/html"
)
mail.send()To create an instance of a SendGridBackend with an API key other than that provided in settings, pass api_key to the constructor
MIT
Enjoy :)
- Install dependencies::
- pip install -r requirements-dev.txt
- Run the tests with coverage::
- pytest --cov=sgbackend
- If you see the error "No module named sgbackend", run::
- pip install -e .