Mar 30 2008

Railsy i actionmailer

Category: Ruby on Railsadmin @ 3:39 pm

Chwile walczyłem z problemem wysyłania maili przez actionMailer. Rozwiązanie okazało się banalne, ale dla początkujących trudnedo przejścia. Ale od początku:

Problem:

Wcześniej aplikacja była uruchamina jako poprzez fcgi na tym samym serwerze na ktorym była domena, wiec o dziwo (!!!) bez ustawienia

ActionMailer::Base.smtp_settings

wszystko ładnie działało bez zarzutów i bezproblemowo.

Problem pojawił się jednak przy przeniesieniu na inny serwer. Na początku w logach nie pojawiło się nic niepokojącego, była widoczna treść wysyłanej wiadomości i proste stwierdzenie “mail sent”. Pomimo tego żadne maile nie docierały. Zmiana hasła w ustawieniach smtp_settings też nic nie pomogła, nadal “mail sent”, a wyników jak nie było tak nie ma.

Rozwiązanie:
Z pomocą przyszło ustawienie:

ActionMailer::Base.raise_delivery_errors = true

i błąd zwracany przez aplikacje o nie udanej autoryzacji. Szybkie sprawdzenie danych do autoryzacji i… następna zagadka. Wszystko poprawnie ustawione, a maili jak nie było tak nie ma. Jak to przy wszystkich problemach z Railsami rozwiązanie jest bardzo proste: Chcąc się logować na konto user@domena.com w ustawieniach smtp pozycja:

:user_name => “”

powinna wyglądać

:user_name => “user@domena.com”

a nie jak można się było spodziewać

:user_name => “user”

2 Responses to “Railsy i actionmailer”

  1. Grzegorz Kazulak says:

    Nie prawda :-) Jest to zalezne od serwera na ktorym masz poczte. Na wiekszosci “shared hosting” domena w nazwie uzytkownika jest wymagana zeby dobrze zlokalizowac odpowiednie dane konta.

  2. admin says:

    Railsy i “shared hosting” to się raczej nie sprawdza dla powazniejszej aplikacji. Wpis jest przypadkiem ogólnym, tzn. podane ustawienia na więkości będą działać.

Leave a Reply