Giv*_*ivP 28 python django smtp amazon-web-services amazon-ses
我正在尝试使用Amazon的新SMTP服务进行SES与Django 1.3.1,但我没有太多运气.
我已经创建了我的SES SMTP凭据并在我的设置中设置了这个:
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
Run Code Online (Sandbox Code Playgroud)
然后我尝试发送测试电子邮件(来自和验证的电子邮件地址):
from django.core.mail import send_mail
send_mail('Test subject', 'This is the body', 'info@abc.com',['hello@abc.com'], fail_silently=False)
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:
SMTPServerDisconnected: Connection unexpectedly closed
Run Code Online (Sandbox Code Playgroud)
我可以telnet到服务器:
telnet email-smtp.us-east-1.amazonaws.com 465
Run Code Online (Sandbox Code Playgroud)
有什么想法吗?
谢谢,G
Giv*_*ivP 27
感谢大家的建议,但我终于找到了一个更简单的解决方案,允许我使用Django的内置邮件类,所以我仍然可以得到我的管理错误电子邮件报告等.
感谢这个小小的美丽,我能够毫无问题地使用SES SMTP:
https://github.com/bancek/django-smtp-ssl
下载并安装(python setup.py install)
然后只需更改您的设置即可使用此新电子邮件后端:
EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'
Run Code Online (Sandbox Code Playgroud)
其余设置按照正常情况进行:
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = 'my_smtp_username'
EMAIL_HOST_PASSWORD = 'my_smtp_password'
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)
尼斯.
G
小智 16
不需要诸如django-ses或 之类的库django-amazon-ses!
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.ap-northeast-1.amazonaws.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'my_smtp_username' # Must create SMTP Credentials
EMAIL_HOST_PASSWORD = 'my_smtp_password' # Must create SMTP Credentials
DEFAULT_FROM_EMAIL = 'myses@sender.com' # If don't need, comment out!!
Run Code Online (Sandbox Code Playgroud)
我补充道DEFAULT_FROM_EMAIL。
DEFAULT_FROM_EMAIL = 'myses@sender.com'
Run Code Online (Sandbox Code Playgroud)
如果不需要的话评论一下!!
# DEFAULT_FROM_EMAIL = 'myses@sender.com'
Run Code Online (Sandbox Code Playgroud)
此外,对于DEFAULT_FROM_EMAIL,请输入 1verified domain或email address无论您的帐户是否在 中sandbox。
因此对于下面经过验证的域sender.com,
以下三个是有效的:(仅使用三个之一)
DEFAULT_FROM_EMAIL = 'abc@sender.com' # OR
DEFAULT_FROM_EMAIL = 'test@sender.com' # OR
DEFAULT_FROM_EMAIL = 'myses@sender.com'
Run Code Online (Sandbox Code Playgroud)
但下面这两个无效:(这些会给你错误)
*格式必须是something@sender.com!!
DEFAULT_FROM_EMAIL = 'sender.com'
DEFAULT_FROM_EMAIL = '@sender.com'
Run Code Online (Sandbox Code Playgroud)
那么,为了下面的验证2 email addresses,
只需使用以下两个之一:
DEFAULT_FROM_EMAIL = 'hello@gmail.com' # OR
DEFAULT_FROM_EMAIL = 'world@outlook.com'
Run Code Online (Sandbox Code Playgroud)
最后,对于EMAIL_HOST_USER和EMAIL_HOST_PASSWORD,您必须创建SMTP Credentials。
选择SMTP Settings:
按下Create My SMTP Credentials按钮:
鉴于SMTP Credentials:
然后,SMTP Credentials如下所示:
EMAIL_HOST_USER = 'AKIAWP3TMGZN4OZH5H37'
EMAIL_HOST_PASSWORD = 'BB6dufiw96jJHUTrowXI8R4gcyOI+t1+Skbi51cdHYhV'
Run Code Online (Sandbox Code Playgroud)
*(我已经删除了这些SMTP Credentials)
Uma*_*mad 11
2019 更新:Django 2.2.1
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'my_smtp_username'
EMAIL_HOST_PASSWORD = 'my_smtp_password'
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)
不需要图书馆。
学分: https //stackoverflow.com/a/32476190/5647272
参考:https : //docs.djangoproject.com/en/2.2/topics/email/
在Django 1.7中,您可以在没有第三方库的情况下本地发送带有SSL的电子邮件.
EMAIL_USE_SSL = True
Run Code Online (Sandbox Code Playgroud)
https://docs.djangoproject.com/en/1.7/ref/settings/#std:setting-EMAIL_USE_SSL
经过长时间的搜索和尝试,我发现:
而是使用:
s = smtplib.SMTP(host, port)
s.starttls()
s.login(user, password)
Run Code Online (Sandbox Code Playgroud)
对于AmazonSES,SMTP必须是:
s = smtplib.SMTP_SSL(host, port)
s.login(user, password)
Run Code Online (Sandbox Code Playgroud)
因此,我认为,对于django,您可以修复django代码,或者编写自己的简单电子邮件后端[基于默认的django电子邮件后端].
UPD:
我找到了另一个解决方案(但我自己没有测试过):从下面的链接中使用SSLEmailBackend
// settings.py
EMAIL_BACKEND = 'backends.smtp.SSLEmailBackend'
Run Code Online (Sandbox Code Playgroud)
(从这里:与Django + uWSGI +发送电子邮件的神秘问题)
UPD2:
AmazonSES从现在开始支持STARTTLS :)
Amazon SES支持SMTP的扩展附件类型,VERP和STARTTLS
(来自亚马逊通讯)
| 归档时间: |
|
| 查看次数: |
14784 次 |
| 最近记录: |