我正在使用django-ses
使用AWS Simple E-mail Service发送电子邮件。我使用send_mail()
发送时没有问题,但使用mail_managers()
设置在设置中设置的同一电子邮件地址,我收到MessageRejected
例外。
这是一个演练:
$ python manage.py ses_email_address -l
Fetching list of verified emails:
gez@gez.com
通过python shell:
>>> 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>
感谢您的帮助。
答案 0 :(得分:2)
这不是由django-ses
引起的。 mail_admins
和mail_managers
都使用SERVER_EMAIL
设置作为发件人地址而非DEFAULT_FROM_EMAIL
:https://docs.djangoproject.com/en/1.4/topics/email/#mail-managers
答案 1 :(得分:0)
我很难在Amazon SES中收到500条错误电子邮件。此过程可能会帮助其他人。
要检查的事情:
它在本地可用! (我使用了django.core.mail.backends.console.EmailBackend)
ADMINS
需要定义
检查是否存在过滤器,以防止在DEBUG = False时发送邮件
如果它在本地不起作用,请运行调试器并逐步完成AdminEmailHandler
。这样可以弄清楚为什么不发送电子邮件。
如果它们都在本地运行,请部署到AWS。
检查您的应用程序可以发送电子邮件(!),例如:
send_email()
登录到SES控制台并检查是否已发送电子邮件(在“发送统计信息”下)
触发500错误-发送统计信息也应该增加,表明SES发送了电子邮件。
是否收到电子邮件?
我必须确保将DEFAULT_FROM_EMAIL
和SERVER_EMAIL
设置为在SES中已验证的电子邮件地址