Django + Heroku + Mandrill mail admins () не работает, либо вручную, либо как вызвано ошибкой 500
у меня есть Django (v1.4) сайт на Heroku с использованием Mandrill для SMTP. У меня есть все необходимые значения в файле настроек:
- EMAIL_HOST_PASSWORD
- EMAIL_HOST_USER
- EMAIL_HOST
- EMAIL_PORT
- SERVER_EMAIL (установлен на реальный адрес, а не root@localhost)
Я могу отправлять обычные письма просто отлично, используя 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,
},
}
}
и мои админы:
ADMINS = (
('My Name', 'myaddress@gmail.com'),
)
Я проверил папку со спамом, а там ничего нет. Я что-то пропустил в настройках? Или что-то еще?
1 ответов
вы проверили свои журналы API Mandrill?
у меня такая же проблема, и я заметил, что письма отправляются в API Mandrill (так как я установил настройки smtp для Mandrill в settings.py), но что from_email и from_name пусты в вызовах API.
Итак, я нашел https://github.com/brack3t/Djrill и я собираюсь установить его. Я дам вам знать, если это "просто работает".
EDIT: Итак, после установки djrill и после документация я получаю неудачные вызовы API для сообщений об ошибках - from_email по какой-то причине отображается как "root@localhost".
когда я делаю тест оболочки, показанный на странице github (с электронной почтой из принятого домена для моей учетной записи Mandrill, заменяющей отправителя Djrill), он работает:
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"])
оказывается, у меня было имя настройки электронной почты по умолчанию "от". Его называют SERVER_EMAIL. Видеть https://docs.djangoproject.com/en/1.3/ref/settings/#std:setting-SERVER_EMAIL.
Итак, следующее в settings.py исправлена моя проблема:
SERVER_EMAIL = myname@myMandrillApprovedDomain.com