To może być głupie pytanie, ale kiedy przygotowuję wiadomość e-mail w formacie HTML w Railsach, czy istnieje szczególnie łatwy wbudowany sposób podglądania szablonu w przeglądarce, czy też muszę napisać jakiś niestandardowy kontroler, który go pobiera w jego opinii?
ruby-on-rails
email
Peter Nixey
źródło
źródło
Odpowiedzi:
Action Mailer ma teraz wbudowany sposób podglądu e-maili w Railsach 4.1 . Na przykład sprawdź to:
źródło
spec/mailers/previews
Odpowiedź Daniela to dobry początek, ale jeśli szablony wiadomości e-mail zawierają dynamiczne dane, to nie zadziała. Załóżmy np., Że Twój e-mail jest potwierdzeniem zamówienia i w nim drukujesz
@order.total_price
- przy użyciu poprzedniej metody@order
zmienna będzie zerowa.Oto mały przepis, którego używam:
Po pierwsze, ponieważ ta funkcja podglądu e-mail jest zdecydowanie przeznaczona tylko do użytku wewnętrznego, skonfigurowałem kilka ogólnych tras w przestrzeni nazw administratora:
Następnie tworzę kontroler. W tym kontrolerze tworzę jedną metodę na szablon wiadomości e-mail. Ponieważ większość wiadomości e-mail zawiera dane dynamiczne, musimy wypełnić wszelkie zmienne składowe, których oczekuje szablon.
Można to zrobić za pomocą urządzeń, ale zazwyczaj wolę po prostu pobrać pseudolosowe rzeczywiste dane. Pamiętaj - to NIE jest test jednostkowy - to wyłącznie pomoc rozwojowa. Nie musi dawać tego samego wyniku za każdym razem - w rzeczywistości - prawdopodobnie lepiej, jeśli nie!
Zauważ, że kiedy renderujemy szablon, używamy
layout=>:mailer
. Powoduje to osadzenie treści wiadomości e-mail w układzie wiadomości e-mail w formacie HTML, który utworzyłeś, zamiast w typowym układzie aplikacji internetowej (npapplication.html.erb
.).I to wszystko. Teraz mogę odwiedzić http://example.com/admin/mailer/preview_welcome, aby wyświetlić podgląd zmiany w moim szablonie powitalnej wiadomości e-mail.
źródło
get 'mailer...
teraz zamiastmatch
.37Signals ma również swój własny klejnot do testowania poczty o nazwie mail_view . To całkiem fantastyczne.
źródło
Najłatwiejszą konfiguracją, jaką widziałem, jest MailCatcher . Konfiguracja zajęła 2 minuty i działa w przypadku nowych przesyłek po wyjęciu z pudełka.
źródło
Używam email_preview . Spróbuj.
źródło
Niedawno napisałem klejnot o nazwie Maily, aby przeglądać, edytować (plik szablonu) i dostarczać wiadomości e-mail aplikacji przez przeglądarkę. Zapewnia również przyjazny sposób przechwytywania danych, elastyczny system autoryzacji i minimalistyczny interfejs użytkownika.
W najbliższej przyszłości planowałem dodać nowe funkcje, takie jak:
Mam nadzieję, że może ci pomóc.
źródło
Możesz użyć Rails Email Preview
REP jest szynach maszyna do podglądu i testy wysyłać e-maile ze wsparciem I18n, łatwą integrację premailer i opcjonalnych CMS do edycji z comfortable_mexican_sofa .
źródło
rails
generuje podgląd poczty, jeśli używaszrails g mailer CustomMailer
. Dostaniesz plik wCustomMailerPreview
środkuspec/mailers/previews
folderze.Tutaj możesz napisać swoją metodę, która wywoła mailer i wygeneruje podgląd.
Dla ex -
Wyświetl podgląd wszystkich wiadomości e-mail pod adresem http: // localhost: 3000 / rails / mailers / custom_mailer
źródło
config.action_mailer.preview_path = "#{Rails.root}/spec/mailers/previews"
Rails Email Preview pomaga nam szybko wyświetlić wiadomość e-mail w przeglądarce internetowej w trybie programistycznym.
1) Dodaj
“gem ‘rails_email_preview’, ‘~> 0.2.29’ “
do pliku gem i zainstaluj pakiet.2) Uruchom
“rails g rails_email_preview:install”
to, aby utworzyć inicjator w folderze konfiguracyjnym i dodać trasy.3) Uruchom
“rails g rails_email_preview:update_previews”
ten folder skrzynek mailer_previews w katalogu aplikacji.Generator doda kod pośredniczący do każdej wiadomości e-mail, a następnie zapełni go fałszywymi danymi.
Dawny:
4) Parametry w zapytaniu wyszukiwania będą dostępne jako zmienna instancji do podglądu klasy. Na przykład: jeśli mamy adres URL, taki jak
“/emails/user_mailer_preview-welcome?user_id=1”
@user_id
jest zdefiniowany w metodzie powitalnejUserMailerPreview
, pomaga nam to wysłać wiadomość do określonego użytkownika.5) Aby uzyskać dostęp do adresu URL REP w ten sposób
6) Możemy wysyłać e-maile przez REP, będzie to używać ustawień środowiska pocztowego. Usuń komentarz z tej linii w inicjatorze, aby wyłączyć wysyłanie poczty w środowisku testowym.
Źródło: Blog RailsCarma: Podgląd wiadomości e-mail w aplikacjach Railsowych za pomocą klejnotu Mail_View
źródło
Dziwię się, że nikt nie wspomniał o letter_opener . To klejnot, który będzie renderować i otwierać wiadomości e-mail jako strona przeglądarki za każdym razem, gdy wiadomość e-mail zostanie dostarczona w programie dev.
źródło
Nie ma możliwości wyświetlenia podglądu bezpośrednio z Mailera. Ale tak jak napisałeś, możesz napisać kontroler, który wygląda mniej więcej tak.
Ale myślę, że to nie jest najlepszy sposób na testowanie e-maili, jeśli wyglądają poprawnie.
źródło
render "#{params[:mailer]}_mailer/#{params[:method]}", :layout => 'mailer'
umieści treść wiadomości e-mail w układzie wiadomości e-mail HTML utworzonym dla Twojej aplikacji.Wolę gem mails_viewer . Ten klejnot jest bardzo przydatny, ponieważ zapisuje szablon HTML w folderze tmp.
źródło