Django Email Sending

Django can send email with its built-in library django.core.mail. You will require an SMTP account from your hosting provide or you may use Gmail. In this tutorial we are going to use a gmail account. For this you simply need to visit Gmail Account Settings and allow less seure app.

Django Email Setup

Django Mail Setup

Add the following attributes under
settings.py

    EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
    EMAIL_HOST = "smtp.gmail.com"
    EMAIL_PORT = 587
    EMAIL_HOST_USER = 'your_email@gmail.com' 
    EMAIL_HOST_PASSWORD = 'your_password'
    EMAIL_USE_TLS = True
                                

Now import the necessary packages and use the send_mail function as below:

from django.core.mail import send_mail

views.py

    from django.http import HttpResponse  
    from django.core.mail import send_mail
    from django.conf import settings
       
    def my_mail(request):  
        subject = "Greetings from Programink"  
        msg     = "Learn Django at Programink.com"  
        to      = "hello@programink.com"  
        res     = send_mail(subject, msg, settings.EMAIL_HOST_USER, [to])  
        if(res == 1):  
            msg = "Mail Sent Successfully."  
        else:  
            msg = "Mail Sending Failed."  
        return HttpResponse(msg)