2013-03-08 10 views
7

I skonfigurować standardowe szyny Mailer z wieloczęściowy widzenia Po oficjalnym przewodniku tak:Wysyłanie wieloczęściowych wiadomości e-mail z Railsami: jak faworyzować wersję HTML zamiast zwykłego tekstu?

mail(to: user.email, subject: "Welcome") do |format| 
    format.html { render layout: 'my_layout' } 
    format.text 
end 

Dzięki jasnej i wspólnym zamiarem nadania priorytetu wersji html wiadomości, tylko do stwierdzenia, że ​​jak this article points out , wywołując format.html przed format.text sprawia, że ​​wiele klientów poczty, aby wyświetlić tylko wersję tekstową wiadomości. W moim przypadku zweryfikowałem (i zmagałem się) z Gmailem i Mozillą Thunderbird.

Czy istnieje niezawodne rozwiązanie zapewniające pierwszeństwo wersji html?

+1

Nie wiedziałem, że istnieje priorytet jeśli chodzi o koperty. co się stanie, gdy usuniesz blok? nie przekazujemy bloku do metody mail, jeśli nie musimy przekazywać żadnych konkretnych szczegółów. udostępniamy szablony html i tekstowe, które są wysyłane jako część wiadomości e-mail. – jvnill

+0

Biorąc pod uwagę, że potrzebuję bloku, ponieważ muszę określić układ dla wersji html (właśnie edytowałem pytanie, aby to pokazać), właśnie zrobiłem szybki test, stosując układ bezpośrednio do wiadomości HTML i usuwając blok: to się kręci że bez bloku działa w prawidłowy sposób (pierwszeństwo do wersji html). – Darme

+0

Odbiorca, a nie nadawca, decyduje, który format preferuje. Jeśli nie chcesz, aby miały opcję wyświetlania tekstu, nawet jeśli to jest to, co preferują, nie twórz wersji tekstowej. – tripleee

Odpowiedz

6

Jedynym rozwiązaniem znalazłem tak daleko jest do przełączania format.html z format.text tak, że format tekstowy nazywa przed html jeden. Który jest dokładnie naprzeciwko tego, czego można oczekiwać.

+1

Umieszczanie najpierw bloku 'format.text' jest dokładnie tym, czego można się spodziewać, na MIME RFC 1341. Zobacz 7.2.3 na http://www.w3.org/Protocols/ rfc1341/7_2_Multipart.html "Ogólnie rzecz biorąc, programy użytkownika, które tworzą wieloczęściowe/alternatywne elementy, powinny umieszczać części ciała w porządku rosnącym, czyli z preferowanym formatem jako ostatnim." –