【问题标题】:Rails - email subject is gibberish in hotmailRails - hotmail 中的电子邮件主题是乱码
【发布时间】:2010-08-28 20:53:43
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: ruby-on-rails email encoding hotmail


    【解决方案1】:

    如果您的主题行很长,那么您可能需要使用 ?= 将其拆分为多行,如下所示:

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

    【讨论】:

    • 嘿,谢谢你的回答,但我知道这个方法,我不知道如何在rails中做到这一点......
    【解决方案2】:

    这对我有用:

    模块 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 SubjectHeaderField) 结尾 结尾

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-19
      • 2011-04-04
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多