ActionMailerでShift_JISなメールを送る

ActionMailerを使うとメールはデフォルトではUTF-8で送信されるけど、それをShift_JISで送信するには次のようにする。ちなみに2.3.8で確認済み。

  1. ビューのファイルをShift_JISで記述する
  2. ActionMailer::BaseでShift_JISにするように設定する

2については以下のような感じ。

# -*- coding: utf-8 -*-
class ShiftjisMailer < ActionMailer::Base
  self.default_charset       = "Shift_JIS"  # デフォルトの文字コード
  self.default_content_type  = "text/plain"

  def test
    recipients    "foo@example.com"
    from          "bar@example.com"
    subject       "てすと".tosjis # 件名はShift_JISに変換してから渡す
  end
end