Django Async Mail

DjangoAsyncMail is a Django app to send email asynchronously. This is a light-weight app using only Python threading for sending emails. It is meant for casual emails, like sending account activation mail from your website when account activation is optional. Using Celery and similar apps for such tasks is definitely an overkill, as they consume heavy system resources.

Installation:

In virtual environment, install by using pip as below:

pip install DjangoAsyncMail

Quick start

  1. Add "DjangoAsyncMail" to your INSTALLED_APPS setting like this:
INSTALLED_APPS = [
    ...
    'DjangoAsyncMail',
]
  1. Remember to add EMAIL_HOST_USER segment is your main Django project settings like this
#SMTP Mail Settings
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.yourdomainname.com'
EMAIL_USE_TLS = False
EMAIL_PORT = 587
EMAIL_HOST_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'your_email_password'
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
  1. Import and call the send_html_mail function with variables wherever you need like this
from DjangoAsyncMail.mail import send_html_mail

send_html_mail(subject,email_body,recipient_list,reply_to)

Example:
send_html_mail('Testing','Test HTML Content',['[email protected]'],['[email protected]'])
  1. Check email delivery in Recipient's mailbox.