0

发送电子邮件适用于所有主要电子邮件客户端,除了 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 个(或其他)字符长……但我不知道如何在 rails (2.3.8)中做到这一点。默认情况下,Rails 以引用的形式对主题进行编码,找不到如何覆盖它,所以我可以自己拆分它......

谢谢。

4

2 回答 2

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

于 2010-08-23T09:32:21.123 回答
0

这对我有用:

模块 ActionMailer
  模块报价
    defquoted_printable(文本,字符集)
      需要'base64'
      #text.scan_utf8(/.{1,64}/m).map{|text| "=?#{charset}?B?#{Base64.b64encode(text)}?="}.join("\n")
      "=?#{charset}?B?#{Base64.b64encode(text).gsub(/\n/, '')}?="
    结尾
  结尾
结尾

模块 TMail
  类 SubjectHeaderField < UnstructuredHeader
    解析
      #没做什么
    结尾
  结尾

  类 HeaderField
    FNAME_TO_CLASS = FNAME_TO_CLASS.merge('subject' => SubjectHeaderField)
  结尾
结尾
于 2010-08-28T12:53:43.733 回答