这是我的settings.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
Run Code Online (Sandbox Code Playgroud)
我已经验证了电子邮件地址,还生成了 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)
Run Code Online (Sandbox Code Playgroud)
那没有用。不过,从 SES 控制台发送测试电子邮件(在已验证的电子邮件中选择一封电子邮件并单击发送测试电子邮件按钮)是可行的。
该文档说我可以使用 openssl 命令通过命令行发送电子邮件。所以,我通过 ssh 连接到 EC2 机器,并使用:
openssl s_client -crlf -quiet -starttls smtp -connect email-smtp.us-east-1.amazonaws.com:25
Run Code Online (Sandbox Code Playgroud)
请注意,我在这里使用了 25,当我使用端口 465 时,它输出:
didn't found starttls in server response, try anyway...
write:errno=32
Run Code Online (Sandbox Code Playgroud)
所以我尝试了端口 25,它已连接(250 …