Biorąc pod uwagę instancję Mailer
w Railsach 3, czy istnieje sposób na przesłonięcie na niej delivery_method
?Użyj innej metody delivery_method z ActionMailer tylko dla pojedynczego adresu e-mail?
Chcę przesłać niektóre wiadomości e-mail za pośrednictwem transportu o wysokim priorytecie, a inne za pomocą bardziej obciążonej metody o niskim priorytecie.
Mogę dostosować konfigurację w czasie wykonywania i zmienić ją z powrotem, ale jest to obarczona potencjalnymi efektami ubocznymi.
Czy korzystasz z opóźnionego zlecenia lub innego systemu queing? Jeśli tak, najprawdopodobniej używasz ich do zakotwiczenia wszystkich twoich e-maili. Możesz ustawić EMAIL_ENV (każdy ma inną konfigurację ActionMailer), podobny do RAILS_ENV i uruchomić różnych pracowników o różnych adresach EMAIL_ENV. Jeśli niektóre wiadomości są dostarczane bezpośrednio za pośrednictwem aplikacji, możesz mieć domyślną wartość domyślną dla adresu EMAIL_ENV. – rubish
Właściwie to właśnie robię. Nie opisałem mojego problemu, ponieważ on faktycznie istnieje :) Wysyłam maile za pomocą mojej własnej metody '': queued' (do Resque, która wykonuje dodatkowe śledzenie), a następnie z Resque'a Muszę wysłać je przez SMTP . Okazuje się, że ustawienie 'delivery_method' (metoda klasy) z podklasy' ActionMailer :: Base' nie ma globalnego wpływu i robi to, czego potrzebuję :) Wysyłamy inne e-maile za pośrednictwem naszej kolejki Resque, więc nie zrobiłem tego chcę zmienić całe środowisko (wiem, że mogłem inaczej skonfigurować różnych pracowników). – d11wtq
Dobrze wiedzieć, że coś takiego istnieje i nie ma globalnego wpływu. – rubish