2013-06-12 8 views
6

Mam stronę Django (v1.4) na Heroku używając Mandrill dla SMTP. Mam wszystkie wymagane wartości w moim pliku ustawień:Django + Heroku + Mandrill mail_admins() nie działa, ręcznie lub jako wyzwalany przez błąd 500

  • EMAIL_HOST_PASSWORD
  • EMAIL_HOST_USER
  • EMAIL_HOST
  • EMAIL_PORT
  • SERVER_EMAIL (zestaw do prawdziwego adresu, nie root @ localhost)

Mogę ręcznie wysyłać zwykłe wiadomości e-mail za pomocą send_messages() od klienta. Ale żadne wiadomości e-mail nie są wysyłane, gdy za 500 błędów i wywołanie mail_admins w kliencie nie powoduje żadnych błędów, ale również nie wysyła wiadomości e-mail.

Oto moja konfiguracja rejestrowania:

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, 
     }, 
    } 
} 

A moi Admini:

ADMINS = (
    ('My Name', '[email protected]'), 
) 

Sprawdziłem mój folder Spam i tam nic nie ma. Czy brakuje mi czegoś w ustawieniach? Albo coś innego?

+0

Co dziennik błędów powiedzieć? – karthikr

Odpowiedz

13

Czy sprawdziłeś logi Mandrill API?

Mam ten sam problem i zauważyłem, że wiadomości e-mail są wysyłane do interfejsu API Mandrill (ponieważ ustawiam ustawienia SMTP dla Mandrill w settings.py), ale to, że from_email i from_name są puste w wywołaniach API.

Tak więc znalazłem https://github.com/brack3t/Djrill i mam zamiar go zainstalować. Dam ci znać, jeśli "po prostu działa".

EDYCJA: Więc po zainstalowaniu djrill i postępowaniu zgodnie z dokumentacją otrzymuję nieudane wywołania API dla komunikatów o błędach - z jakiegoś powodu serwer from_email wyświetla się jako "root @ localhost".

Kiedy zrobić test powłoki pokazany na stronie github (z wiadomości e-mail od zaakceptowanej domeny dla mojego Mandrill uwagę zastępującego Djrill Sender), to działa:

from django.core.mail import send_mail 

send_mail("It works!", "This will get sent through Mandrill", 
    "Djrill Sender <[email protected]>", ["[email protected]"]) 

Okazuje się, że miałem domyślne Nazwa ustawienia e-maila "od" jest zdezorientowana. Nazywa się SERVER_EMAIL. Zobacz https://docs.djangoproject.com/en/1.3/ref/settings/#std:setting-SERVER_EMAIL.

Więc idąc w settings.py stałe mój problem:

SERVER_EMAIL = [email protected] 
+1

konfiguracja SERVER_MAIL działa dla mnie! – azuax

+0

Tak, brakujące ustawienia SERVER_MAIL były zdecydowanie problemem. – Rias

+0

To sprawi, że Twój wynik przepełnienia stosu wzrośnie. Dzięki. – MagicLAMP