Rails – 电子邮件主题在hotmail中是乱码

发送电子邮件适用于所有主要电子邮件客户端,除了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默认编码主题,引用forms,找不到如何覆盖它,所以我可以自己拆分…

谢谢。

如果你有一个非常长的主题行,那么你可能需要使用?=将它分成多行,如下所示:

 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将是安全的。

这对我有用:

模块ActionMailer
  模块引用
     def quoted_printable(text,charset)
      要求'base64'
       #text.scan_utf8(/ {1,64} /米).MAP {|文本|  “=?#{字符集} 2 B 4#{Base64.b64encode(文本)} =”}。加入( “\ n” 个)
       “=?#{charset}?B?#{Base64.b64encode(text).gsub(/ \ n /,'')}?=”
    结束
  结束
结束

模块TMail
   class SubjectHeaderField  SubjectHeaderField)
  结束
结束
Interesting Posts