Rails 雑感

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

最近は日本語の電子メールも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 に報告をお願いいたします。

(2011/12/05)

記事に関するご質問は、 hermes@oiax.jp までメールでお送りください。

ウェブサイト構築の発注先を検討されているお客様は、ご相談フォームをご利用ください。