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 に報告をお願いいたします。