文字化けしないメールの送り方
UTF8の一部の文字(〜とか)を含むメールも文字化けしないで送る方法の紹介
gettextを利用して一部に修正を加えています。
NKFのオプションに --cp932 を加えているだけなので、
gettext にパッチを当てるのが一番正しい気もしますが、一応これでいけます。
require 'gettext/rails' GetText.locale = 'ja' class HogeMailer < ActionMailer::Base @@charset='iso-2022-jp' def base64(text, charset="iso-2022-jp", convert=true) if convert if charset == "iso-2022-jp" text = NKF.nkf('-j --cp932 -m0', text) end end text = TMail::Base64.folding_encode(text) "=?#{charset}?B?#{text}?=" end def create!(*arg) #:nodoc: create_without_gettext!(*arg) if Locale.get.language == "ja" require 'nkf' @mail.subject = base64(@mail.subject) part = @mail.parts.empty? ? @mail : @mail.parts.first if part.content_type == 'text/plain' part.charset = 'iso-2022-jp' part.body = NKF.nkf('-j --cp932', part.body) end end @mail end end