2010-08-23 54 views
0

发送电子邮件,完全适用于所有主要的电子邮件客户端,除了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无法读取长引用的主题,因为对于较短的主题,它显示正常。我不明白如何在rails(2.3.8)中做到这一点。 Rails编码的主题默认情况下,以引用的形式,无法找到如何覆盖,所以我可以自己拆分它...

谢谢。

回答

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 
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?= 

我不得不把一个“C”在的结束主题行来获取苹果邮件引用它,但它应该给你的照片。我不记得确切的时间应该是多少,我认为它的编码后78,但不是100%肯定,64如果这是你所看到的将是安全的。

+0

嘿,感谢回答,但我知道这个方法,我想不通是怎么做的,在轨... – Devenv 2010-08-23 09:45:25