Railsy i actionmailer

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

Wcześniej aplikacja była odpalana jako fcgi na tym samym serwerze na ktorym była domena, wiec o dziwo (!!!) bez ustawienia <code>ActionMailer::Base.smtp_settings</code> wszystko ładnie działało.

Problem pojawił się jednak przy przeniesieniu na inny serwer. Na początku w logach wszystko wyglądało ok, była treść maila 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”.

Dzięki temu zrobiłem następny krok ku agile development :)

Leave a Reply