I'm trying to use Amazon's new SMTP service for SES with Django 1.3.1 but I'm not having much luck.
I've created my SES SMTP credentials and have this in my settings:
EMAIL_USE_TLS = True
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_HOST_USER = 'my-smtp-user'
EMAIL_HOST_PASSWORD = 'my-smtp-password'
EMAIL_PORT = 465
Then I try sending a test email (from and to verified email addresses):
from django.core.mail import send_mail
send_mail('Test subject', 'This is the body', 'info@abc.com',['hello@abc.com'], fail_silently=False)
But I get the following error:
SMTPServerDisconnected: Connection unexpectedly closed
I can telnet to the server:
telnet email-smtp.us-east-1.amazonaws.com 465
Any thoughts?
Thanks, G
2019 Update: Django 2.2.1
Credits : https://stackoverflow.com/a/32476190/5647272
Reference : https://docs.djangoproject.com/en/2.2/topics/email/
After long long searching and trying I found:
Instead using:
For AmazonSES SMTP must be:
So, I think, for django you can either fix django code, or write you own simple email backend [based on default django email backend].
UPD:
I found another solution (but not tested it by myself): use SSLEmailBackend from link below
(From here: Mysterious issue with Django + uWSGI + send email )
UPD2:
AmazonSES supports STARTTLS from now :)
(from Amazon Newsletter)
Thanks everyone for the recommendations but I finally found a much simpler solution that would allow me to use Django's built-in mail classes so I can still get my admin error email reports etc.
Thanks to this little beauty I was able to use SES SMTP without any problems:
https://github.com/bancek/django-smtp-ssl
Download and install (python setup.py install)
Then just change your settings to use this new email backend:
The rest of the settings are as per normal:
Nice.
G
I have tried smtp settings in order to @Givp(who answered above), I want to give complete AWS SMTP settings in django.
here we have to verify all the mail-ids before sending email.then everything would work as our expectation
http://aws.amazon.com/articles/2405502737055650
core python functionality sample
In Django 1.7, your can send email with SSL natively without third party library.
https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-EMAIL_USE_SSL