Django和AWS简单邮件服务

3

我正在尝试开发一个 Django 网站,并尝试启用 Django 的标准密码重置服务。

我的网站托管在 AWS EC2 上,所以我想使用 AWS SES 作为邮件服务。但是,我无法使 smtp 连接正常工作。您有什么解决以下错误的想法吗:

异常类型:SMTPSenderRefused 异常信息:(530,b'需要身份验证','example@example.com')

我已查看了以下内容,但如果可能的话,我更倾向于使用 Django 内置的电子邮件后端:

电子邮件设置:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'email-smtp.us-west-2.amazonaws.com'
EMAIL_PORT = 587 # (I've also tried 25, 465, & 2587)
EMAIL_HOST_USER = ''
EMAIL_PASSWORD = ''
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'example@example.com' # but my real email address

我的EMAIL_HOST_USER和EMAIL_PASSWORD设置为我通过遵循以下说明获取的SMTP凭据:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/smtp-credentials.html 此外,我确保按照以下说明验证了我的DEFAULT_FROM_EMAIL和域名:https://docs.aws.amazon.com/ses/latest/DeveloperGuide/verify-addresses-and-domains.html DKIM已启用并且我的名称服务器已更新。
真的非常感谢您的帮助。
更新:
我能够使用django-ses第三方库使django电子邮件发送工作正常,但我仍然无法弄清楚为什么标准后端无法通过SMTP工作。
我认为我的代码肯定有问题,因为我甚至从AWS SES切换到Zoho邮件客户端,仍然收到相同的530身份验证错误。
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.zoho.com'
EMAIL_PORT = 587
EMAIL_HOST_USER = 'support@example.com'
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'support@example.com'
EMAIL_PASSWORD = ''
1个回答

0
如果要求验证,请仔细检查以下内容:
- 您的SMTP设置 - 发送邮件的电子邮件地址必须属于经过验证的域名。例如,如果您已经验证了 "example.com",但尝试从 "something@gmail.com" 发送邮件,则需要提供 gmail 的身份验证凭据。

我已确认我的SMTP凭据和服务器信息是正确的。我甚至尝试创建另一组凭据,以查看是否最初复制它们时出现了错误。而且我正在从已验证的域发送已验证的电子邮件。还有其他设置我应该看一下吗? - Daniel Long
请问您能否尝试从AWS控制台的SES发送测试电子邮件? - unixia
我已经成功使用SES发送了一封测试邮件。事实上,我使用django-ses库使其工作。我将在原问题中更新我的发现。 - Daniel Long

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接