tch*_*ore 6 python django mandrill
我使用Mandrill for SMTP在Heroku上有一个Django(v1.4)站点.我的设置文件中包含所有必需的值:
我可以send_messages()从客户端手动发送常规电子邮件.但是,对于500个错误而没有发送电子邮件,并且mail_admins在客户端中调用不会产生任何错误,但也不会发送电子邮件.
这是我的日志记录设置:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler'
}
},
'loggers': {
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': True,
},
}
}
Run Code Online (Sandbox Code Playgroud)
而我的ADMINS:
ADMINS = (
('My Name', 'myaddress@gmail.com'),
)
Run Code Online (Sandbox Code Playgroud)
我检查了我的垃圾邮件文件夹,那里什么都没有.我在设置中遗漏了什么吗?或者是其他东西?
kvn*_*vnn 13
你检查过你的Mandrill API日志了吗?
我遇到了同样的问题,并注意到电子邮件被发送到Mandrill API(因为我在settings.py中设置了Mandrill的smtp设置),但是在API调用中from_email和from_name是空的.
所以,我找到了https://github.com/brack3t/Djrill,我即将安装它.我会告诉你它是否"正常".
编辑:所以在安装djrill并遵循文档后,我收到错误消息的API调用失败 - 由于某种原因,from_email显示为"root @ localhost".
当我在github页面上显示shell测试时(我的Mandrill帐户替换了Djrill Sender,来自接受域的电子邮件),它可以工作:
from django.core.mail import send_mail
send_mail("It works!", "This will get sent through Mandrill",
"Djrill Sender <djrill@example.com>", ["to@example.com"])
Run Code Online (Sandbox Code Playgroud)
事实证明,我的默认"发件人"电子邮件设置名称混淆了.它叫做SERVER_EMAIL.请参阅https://docs.djangoproject.com/en/1.3/ref/settings/#std:setting-SERVER_EMAIL.
所以settings.py中的以下内容修复了我的问题:
SERVER_EMAIL = myname@myMandrillApprovedDomain.com
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1856 次 |
| 最近记录: |