gpt4 book ai didi

python - Django 和亚马逊 SES SMTP。无法发送电子邮件

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:21 25 4
gpt4 key购买 nike

这是我的设置.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-east-1.amazonaws.com'
EMAIL_PORT = '465'
EMAIL_HOST_USER = config_data['EMAIL_HOST_USER']
EMAIL_HOST_PASSWORD = config_data['EMAIL_HOST_PASSWORD']
EMAIL_USE_SSL = True

我已经验证了电子邮件地址并生成了 SMTP 凭据,我下载了包含 IAM 用户名、Smtp 用户名和 Smtp 密码的凭据。我为 EMAIL_HOST_USER 使用了 smtp 用户名,为 EMAIL_HOST_PASSWORD 使用了 smtp 密码。

在 django 中,我用这一行发送了一封电子邮件(admin@admin.com 被替换为已验证电子邮件列表中的 gmail 帐户):

send_mail("Subject", "content", "admin@admin.com", [email], fail_silently=False)

那没有用。从 SES 控制台发送一封测试电子邮件(在经过验证的电子邮件中选择一封电子邮件,然后单击发送测试电子邮件按钮)仍然有效。

document说我可以使用 openssl 命令通过命令行发送电子邮件。所以,我对 EC2 机器进行了 ssh,并使用:

openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:25

注意我在这里使用了25,当我使用端口465时,它输出:

didn't found starttls in server response, try anyway...
write:errno=32

所以我改为尝试端口 25,它已连接(250 OK),然后我输入:

AUTH LOGIN
334 VXNlcm5hbWU6
SMTP_USER
334 UGFzc3dvcmQ6
SMTP_PASSWORD

但它输出:535 身份验证凭据无效。可能是我使用了错误的凭据吗?但我直接从 smtp 用户和密码生成页面复制了用户名和密码。

我还尝试将 AmazonSESFullAccess 策略附加到所有 IAM 用户,但没有任何反应。

我使用的是 Django 1.8.2。尝试过 Django-ses 但它也不起作用(运行测试时出现语法错误,它不支持 python 3?)

更新

我将端口更改为 587 并使用 USE_TLS True,现在我可以从 django shell 发送邮件了。我将函数放在我的应用程序 views.py 中:

def test_email(request):
send_mail("title", "content", "abc@gmail.com", ["def@gmail.com"], fail_silently=False)
return get_return_object(request, status_code=1)

在 urls.py 中,我将它放在 urlpatterns 中:

url(r'^test_email/$', views.test_email, name="test_email"),

当我访问该 URL 时,没有任何反应。我从 shell 调用相同的函数 test_email 并且它有效。

更新

事实证明,我还可以使用端口 465 和 USE_SSL True,并且能够从 django shell 发送邮件。但它在 views.py 中仍然不起作用

最佳答案

如果您使用端口 465:使用 pip 安装 django-smtp-ssl

pip install django-smtp-ssl

然后在settings.py中修改EMAIL_BACKEND如下:

EMAIL_BACKEND = 'django_smtp_ssl.SSLEmailBackend'

如果您使用端口 587:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'

关于python - Django 和亚马逊 SES SMTP。无法发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com