5

Właśnie zainstalowałem program Mailboxer (gem 'mailboxer') w mojej aplikacji Rails 3.1.1 ... Mam działające powiadomienia e-mail.Jak dostosować temat wiadomości e-mail Mailboxer?

Podążyłem za instrukcjami these, aby dostosować wiadomość e-mail z powiadomieniem, którą otrzymają użytkownicy, gdy otrzymają nową wiadomość za pośrednictwem mechanizmu Mailboxer w mojej aplikacji ... To pozwala mi edytować treść wiadomości e-mail, którą otrzymują, ale chcę zmienić "Temat" w nagłówku wiadomości e-mail z domyślnej "nowej wiadomości Mailboxer:" do dostosowanego tematu.

Zakładam, że może istnieć linia, którą mogę dodać do pliku konfiguracyjnego mailboxer.rb?!?!?

Czy ktoś może w tym pomóc?

Odpowiedz

5

Tak więc całkowicie pominąłem oczywistość tego ... Wystarczy dodać niestandardowy program pocztowy, a następnie masz pełną kontrolę.

Dodaj poniższe linie do pliku konfiguracyjnego mailboxer.rb:

Mailboxer.setup do |config| 
    config.notification_mailer = CustomNotificationMailer 
    config.message_mailer = CustomMessageMailer 
... 
end 

Jak wyraźnie zaznaczono w wiki, here.

+2

Widziałem to na wiki ale nie lubię tworzyć zupełnie nowej klasy tylko po to, by zmienić temat. – Jeff

+0

Tak, myślałem, że będzie łatwiejsze ustawienie zmiennej lub coś w tym stylu ... Nie jest to trudne, gdy kopiujesz widoki mailera, zrób to najpierw: 'rails g mailboxes: views', wtedy możesz skopiować widoki, które generują do twojego mailer –

9

wystarczy zmienić plik en.yml i ustawić własne tematy:

mailboxer.message_mailer.subject_new 
mailboxer.message_mailer.subject_reply 

"osobnik" var zawiera przedmiot mailboxer-wiadomości. Ex:

en: 
    mailboxer: 
    message_mailer: 
     subject_new: 'Hey, you receive a new message about %{subject}' 
     subject_reply: 'Hey, you receive a new reply about %{subject}' 

PS: za każdym razem można sprawdzić wynik w konsoli z:

I18n.translate("mailboxer.message_mailer.subject_new", :subject => "hello") 

* po prostu zmienić „cześć” do rzeczywistego przedmiotu

+1

To powinno być oznaczone jako poprawna odpowiedź. –