如何将中文字符添加到电子邮件的主题行中?

时间:2011-08-16 16:31:12

标签: ruby-on-rails email utf-8 character-encoding email-headers

我正在尝试在主题行中发送包含中文/台湾字符的电子邮件。用户输入的电子邮件内容以中文显示正确,但我遇到了主题问题。

我正在使用Rails 3.0.9并将其配置为立即通过我的Gmail帐户发送。所有这一切都在起作用,但也许谷歌正在搞乱我的主题?

以下是我的邮件中的代码段:

mail(:to => lead_email,
     :subject => "=?utf-8?B?" + Base64.encode64(@club.offers.first.title) + "?=",
     :from => from_email,
     :content_type => "text/html; charset=utf-8",
     :reply_to => 'noreply@buddyreferralsystem.com',
     :content_transfer_encoding => '8bit'
).deliver

这是我收到电子邮件标题时收到的内容。

Subject: 期待很快就可以在俱樂部看到你喔!
Mime-Version: 1.0
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

当我阅读GMail中的电子邮件时,我看到上面的不可读主题行,但电子邮件内容中的中文文本正常呈现。有一点需要注意的是,内容传输编码似乎从我设置的'8bit'变为'quoted-printable'。

如何让中文字符显示在主题行而不是期

1 个答案:

答案 0 :(得分:1)

尝试使用不同的字符集?在标题中,它表示主题行中的内容类型为UTF-8。

尝试将其更改为其他字符集,例如big5

GB是中华人民共和国的官方标准,Big5是台湾事实上的标准。

将'big5'放在主题行中看到'utf-8'的地方:

mail(:to => lead_email,
     :subject => "=?utf-8?B?" + Base64.encode64(@club.offers.first.title) + "?=",
     :from => from_email,
     :content_type => "text/html; charset=big5",
     :reply_to => 'noreply@buddyreferralsystem.com',
     :content_transfer_encoding => '8bit'
).deliver

http://en.wikipedia.org/wiki/Big5