2013-03-08 27 views
7

tôi thiết lập một đường ray tiêu chuẩn Mailer với quan điểm nhiều phần dữ liệu sau đây hướng dẫn chính thức, như thế này:Gửi email nhiều phần với Rails: cách ưu tiên phiên bản HTML trên văn bản thuần tuý?

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

Với mục đích rõ ràng và phổ biến để ưu tiên cho phiên bản html của thông điệp, chỉ để thấy rằng, như this article points out , gọi format.html trước khi format.text tạo nhiều ứng dụng thư khách để chỉ hiển thị phiên bản văn bản của thư. Trong trường hợp của tôi, tôi đã xác minh (và phải vật lộn với) với cả Gmail và Mozilla Thunderbird.

Có giải pháp đáng tin cậy nào để ưu tiên cho phiên bản html không?

+1

tôi không biết rằng có ưu tiên khi nói đến người gửi thư. điều gì sẽ xảy ra khi bạn xóa khối? chúng tôi không vượt qua một khối để các phương pháp mail nếu chúng ta không cần phải vượt qua bất kỳ chi tiết cụ thể. chúng tôi chỉ cung cấp các mẫu html và văn bản và chúng được gửi dưới dạng một phần của email. – jvnill

+0

Cho rằng tôi cần khối vì tôi cần chỉ định bố cục cho phiên bản html (tôi vừa chỉnh sửa câu hỏi để hiển thị), tôi vừa thực hiện kiểm tra nhanh việc áp dụng bố cục trực tiếp cho thông báo html và xóa khối: ra rằng nếu không có khối nó hoạt động đúng cách (ưu tiên cho phiên bản html). – Darme

+0

Người nhận, không phải người gửi, quyết định định dạng nào họ thích. Nếu bạn không muốn họ có tùy chọn để xem văn bản ngay cả khi đó là những gì họ thích, không tạo ra một phiên bản văn bản. – tripleee

Trả lời

6

Giải pháp duy nhất tôi tìm thấy cho đến nay là chuyển đổi format.html với format.text sao cho định dạng văn bản được gọi là trước định dạng html. Đó chính xác là số đối diện với của những gì người ta mong đợi.

+1

Đặt khối 'format.text' trước tiên là chính xác những gì người ta mong đợi, theo MIME RFC 1341. Xem 7.2.3 trên http://www.w3.org/Protocols/ rfc1341/7_2_Multipart.html "Nói chung, các tác nhân người dùng soạn các thực thể nhiều phần/thay thế nên đặt các bộ phận cơ thể theo thứ tự ưu tiên ngày càng tăng, tức là, với định dạng ưa thích cuối cùng." –

Các vấn đề liên quan