djangodjango-email

Django send_mail not working - No email delivered


When the view that sends the email is used nothing happens, i then entered send_mail(...) into the python shell and it returned 1 but i didn't receive any emails.

This is my settings.py

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'senderaddress@gmail.com'
EMAIL_HOST_PASSWORD = 'Password1234!'
EMAIL_USE_TLS = True

This is the view:

def send_email(request):
    send_mail('Request Callback', 'Here is the message.', 'senderaddress@gmail.com',
        ['recipientaddress@gmail.com'], fail_silently=False)
    return HttpResponseRedirect('/')

Solution

  • Adjust your settings thus:

    DEFAULT_FROM_EMAIL = 'workorbit@gmail.com'
    SERVER_EMAIL = 'workorbit@gmail.com'
    EMAIL_USE_TLS = True
    EMAIL_HOST = 'smtp.gmail.com'
    EMAIL_PORT = 587
    EMAIL_HOST_USER = 'workorbit@gmail.com'
    EMAIL_HOST_PASSWORD = 'P@ssw0rd5'
    

    Adjust your code:

    from django.core.mail import EmailMessage
    
    def send_email(request):
        msg = EmailMessage('Request Callback',
                           'Here is the message.', to=['charl@byteorbit.com'])
        msg.send()
        return HttpResponseRedirect('/')