2012-05-10 28 views
5

Setup:Rails ActionMailer mã hóa

Ruby 1.9.2 
Rails 3.2.2 

Tôi đang gặp một số rắc rối với các mã hóa email của tôi.

Lưu ý: Tôi không quen với mã hóa và nội dung như vậy.

Khi gửi email với ActionMailer, có gì đó lạ đang xảy ra với html trong email.

Tất cả các dấu bằng (=) sẽ được đổi thành =3D. Ví dụ:

<table border=3D"0" cellpadding=3D"0" cellspacing=3D"0" width=3D"=440"> 
    <tbody> 
    <tr> 
     <td height=3D"10"> </td> 
    </tr> 
    </tbody> 
</table> 

Ký tự đặc biệt trông như thế này: ä ->ä.

Có vẻ tuyệt vời trong phát triển địa phương, nhưng khi sử dụng SendGrid trên máy chủ sản xuất, các ký tự đặc biệt không hoạt động.

Tôi chắc chắn điều này là do sự thiếu hiểu biết của tôi.

Dưới đây là thư Tiêu đề:

Mime-Version: 1.0 
Content-Type: text/html; 
charset=UTF-8 
Content-Transfer-Encoding: quoted-printable 
X-SMTPAPI: {"filters": {}} 

Liệu nó có bất cứ điều gì để làm với Content-Transfer-Encoding? Hay nó sẽ như thế?

Có thể đó là sự cố với SendGrid chứ không phải là thiết lập của tôi?

Nhân viên tại SendGrid đã nói với tôi điều này: you need to make sure your equals signs are URI-encoded, điều đó có nghĩa là gì? Cảm ơn bạn trước!

+0

Sau khi một số nghiên cứu có thể thư nên có bằng (và các ký tự khác) thay đổi thành '' '= 3D''' (vì nó' '' được trích dẫn'''), nhưng tôi không thể tìm ra lý do tại sao ký tự như åäö không hoạt động. –

Trả lời

1

Nó không phải là một vấn đề về phía tôi, nó là SendGrid. Các thư được gửi qua SendGrid với các ký tự như "åäö" không hoạt động trong các ứng dụng thư như yahoo/outlook/MacMail.

Sau một vài giờ hỗ trợ với nhân viên tại SendGrid, sự cố vẫn tiếp diễn. Họ nói rằng vấn đề là trong thiết lập của tôi. Bây giờ tôi đã chuyển sang mailgun với chính xác cùng một thiết lập và nó hoạt động tuyệt vời.

0

Tôi đã giải quyết được sự cố của mình bằng cách thêm mặc định 'Content-Transfer-Encoding' => '7bit' vào số ActionMailer của mình.

Hãy xem qua số API docs.

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