发送电子邮件适用于所有主要电子邮件客户端,除了hotmail(和其他一些),它显示为:
=?windows-1255?Q?Z33=30_=F9=22=E7=20=F2=E1=E5=F8_=F9=E5=E1=F8=20=E1=F9=E5=E5=E9=20=36=30_=F9=22=E7=20=EC=22=EE=F8=E2=E5=E6=E4=22=2C_=E1=E9=FA_=F7=F4=E4=20=E5=EE=E0=F4=E9=E9=E4_=EE=F9=F4=E7=FA=E9=FA=2C=20=E1=EE=FA=E7=ED=20=F9=E5=F7=20=E4=F4=F9=F4=
无论是否是utf8都无关紧要。似乎hotmail无法读取长引用的主题,因为对于较短的主题,它显示确定。
AFAIK例如gmail所做的就是将主题分成碎片,64(或其他)chars long ... 但我无法弄清楚如何在rails(2.3.8)中做到这一点。 Rails默认编码主题,引用形式,无法找到如何覆盖它,所以我可以自己拆分...
感谢。
答案 0 :(得分:0)
如果你有一个非常长的主题行,那么你可能需要使用?=将它分成多行,如下所示:
Subject: =?iso-8859-1?Q?This_is_a_really_long_subject_that_should_need_so?=
=?iso-8859-1?Q?me_encoding_to_make_sure_that_it_all_fits_correct?=
=?iso-8859-1?Q?ly_=E7?=
我必须在主题行的末尾添加'ç'以获取苹果邮件引用它,但它应该给你的图片。我不记得你在拆分它之前应该多长时间我认为它在编码后是78但不是100%肯定,如果你看到的话,64将是安全的。
答案 1 :(得分:0)
这对我有用:
module ActionMailer module Quoting def quoted_printable(text, charset) require 'base64' #text.scan_utf8(/.{1,64}/m).map{|text| "=?#{charset}?B?#{Base64.b64encode(text)}?="}.join("\n") "=?#{charset}?B?#{Base64.b64encode(text).gsub(/\n/, '')}?=" end end end module TMail class SubjectHeaderField < UnstructuredHeader def parse #Do nothing end end class HeaderField FNAME_TO_CLASS = FNAME_TO_CLASS.merge('subject' => SubjectHeaderField) end end