Rails 3.xでISO-2022-JP(JISコード)の電子メールを送る: mail-iso-2022-jp

2011/12/05

最近は日本語の電子メールもUTF-8で送ってもいいという雰囲気になってきましたが、不特定多数が使うWebサービスを運営する場合は、まだまだISO-2022-JP(いわゆる「JISコード」)を使わざるを得ません。

しかし、Rails 3.xでISO-2022-JPの電子メールを送信するには、ひと手間が必要です。単に

class UserMailer < ActionMailer::Base
  default :charset => 'ISO-2022-JP'

  ...
end

のように書くだけでは足りません。件名や本文のデータをISO-2022-JPで渡す必要があります。私は、メール本文のテンプレートをUTF-8で書きたいので、自動で文字コードが変換されるようにならないものかと考えました。

ネットで探すと、Matsushitaさんという方がmail_jaというプラグインをGitHubで公開されていました。ざっとソースコードを読むと私が探していたものに近かったのですが、Fromヘッダに未対応だったので、ご本人と相談しつつ、私が必要とする仕様を加えてGem化することにしました。

その結果生まれたのが、mail-iso-2022-jpです。

Ruby 1.8.7だけでなくRuby 1.9系にも対応していて、いわゆる波ダッシュや髙(はしご高)や半角カナや①②③も扱えるようにしてあります。

ActionMailerには依存していませんので、Rails以外でも使えるはずです。ただし、mail gem (>= 2.2.5)が必要なので、Rails 2.xでは使用できません。

利用してみて何か問題がございましたら、GitHubの Issues に報告をお願いいたします。