2012-05-10 36 views
5

設置:的Rails的ActionMailer編碼

Ruby 1.9.2 
Rails 3.2.2 

我遇到一些麻煩我的電子郵件的編碼。

注意:我並不熟悉編碼和類似的東西。

當用ActionMailer發送郵件時,電子郵件中的html會出現一些奇怪的現象。

所有等於(=)的符號變爲=3D。 例子:

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

特殊字符看起來是這樣的:ä - >ä

在本地開發中看起來不錯,但在生產服務器上使用SendGrid時,特殊字符不起作用。

我確定這是因爲我缺乏理解。

這裏的郵件標題:

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

是否有什麼關係Content-Transfer-Encoding?還是應該是這樣?

也許這是SendGrid的問題,而不是我的設置?

SendGrid的員工告訴我這個:you need to make sure your equals signs are URI-encoded,這是什麼意思? 在此先感謝!

+0

經過一番研究,可能郵件應該與「''= 3D'''(因爲它是quoted-printable''')相同(和其他字符),但我不知道爲什麼字符像åäö不工作。 –

回答

1

這不是我的問題,它是SendGrid。 通過SendGrid發送的郵件(如「åäö」)不適用於郵件客戶端,如yahoo/outlook/MacMail。

在SendGrid的員工經過幾個小時的支持後,問題仍然存在。 他們說這個問題出在我的設置上。 我現在已經切換到與完全相同的設置的郵件槍,它的工作很好。

0

我解決了我的問題,在我的ActionMailer中添加了默認的'Content-Transfer-Encoding' => '7bit'

看看API docs