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