0

我正在使用django-sesAWS 简单电子邮件服务发送电子邮件。send_mail()我使用设置中设置的相同电子邮件地址发送没有问题,但使用mail_managers()时出现MessageRejected异常。

这是一个演练:

$ python manage.py ses_email_address -l
Fetching list of verified emails:
gez@gez.com

并通过 python 外壳:

>>> settings.DEFAULT_FROM_EMAIL
'gez@gez.com'
>>> settings.MANAGERS
(('omat', 'om@tekno.org'),)
>>> send_mail('test', 'test', 'gez@gez.com', ['om@tekno.org'])
1
>>> mail_managers('test', 'test')
BotoServerError: BotoServerError: 400 Bad Request
<ErrorResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
  <Error>
    <Type>Sender</Type>
    <Code>MessageRejected</Code>
    <Message>Email address is not verified.</Message>
  </Error>
  <RequestId>66269bb3-ca86-11e1-80db-5b89cf7a6356</RequestId>
</ErrorResponse>

谢谢你的帮助。

4

2 回答 2

2

这不是由django-ses. 两者都mail_admins使用mail_managers设置SERVER_EMAIL作为发件人地址而不是DEFAULT_FROM_EMAILhttps ://docs.djangoproject.com/en/1.4/topics/email/#mail-managers

于 2012-07-10T13:06:24.583 回答
0

我在收到 Amazon SES 中出现的错误 500 电子邮件时遇到了一些麻烦。此过程可能对其他人有所帮助。

检查事项:

  • 它在本地工作!(我用过django.core.mail.backends.console.EmailBackend

    • 这意味着您可以生成应用程序错误,您将在运行服务器的控制台中看到它
  • ADMINS需要定义

  • 检查当 DEBUG=False 时没有过滤器阻止邮件发送

  • 如果它在本地不起作用,请运行调试器并单步执行AdminEmailHandler. 这可能会清除电子邮件未发送的原因。

如果一切都在本地运行,请部署到 AWS。

  • 检查您的应用程序是否可以发送电子邮件 (!),例如:

    • 触发内部电子邮件,例如重置密码
    • 通过 EC2 实例连接到应用程序并调用send_email()
  • 登录到 SES 控制台并检查电子邮件是否已发送(在“发送统计信息”下)

  • 触发 500 错误 - 发送统计信息也应该增加,表明 SES 发送了一封电子邮件。

  • 是否收到电子邮件?

    • 检查垃圾邮件文件夹
    • 目标电子邮件地址是否列在 SES 中的“电子邮件地址”下(如果您的 SES 帐户在沙箱中,则为必需)
  • 我必须确保DEFAULT_FROM_EMAILSERVER_EMAIL设置为 SES 中已验证的电子邮件地址

于 2020-08-13T19:30:26.433 回答