Rails 3 beta 中文邮件乱码问题解决

更新: Mail 2.2 已解决此问题

如果你升级到了Rails 3 Beta,并且使用了ActionMailer,那么你会发现邮件标题出现有规律的乱码,每个8的倍数的地方都出现了奇怪的字符,这是ActionMailer和Mail gem配合出现了问题,解决的办法很简单,修改ActionMailer::Base#quote_fields,将这个函数改成如下:


def quote_fields!(headers, charset) #:nodoc:
  m = @_message
  m.subject ||= headers[:subject] if headers[:subject]
  m.to ||= headers[:to] if headers[:to]
  m.from ||= headers[:from] if headers[:from]
  m.cc ||= headers[:cc] if headers[:cc]
  m.bcc ||= headers[:bcc] if headers[:bcc]
  m.reply_to ||= headers[:reply_to] if headers[:reply_to]
end

给Rails Core提了一个Patch,但是因为考虑不周,没有通过,所以官方的解决方案恐怕要等到Mail 2.2或者Rails 3 Beta1。

This entry was posted in 其它. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.

无觅相关文章插件,快速提升流量