Skip to content
tmtysk edited this page Sep 13, 2010 · 21 revisions

MbMail

Sorry, Japanese only.

MbMail は、

Rails で日本の携帯向けサービスをつくる際、 メール扱い周りで発生するちょっとした面倒を回避するための小物寄せ集めプラグイン

です。

MbMail は以下の機能を提供しています。

  • MbMail::DMail
    • キャリア間HTMLメール(デコメール™, デコレーションメール™, デコレメール™)の相互変換
  • MbMail::MbMailer
    • ActionMailer の拡張
      • 絵文字を含むメールの送受信に対応
        • アプリ側では、jpmobile 同様、数値文字参照で絵文字を表記します
        • 相手アドレス(送信時はTo, 受信時はFrom)の1件目のドメイン名から使用するエンコーディングと絵文字変換ルールを決定します。1件のメールで複数の(キャリアが異なる)Toを指定するなどすると、所期の動作が得られなくなります
        • docomoとsoftbankはgmail.comなどで受信できる(ゲタになってない)メールを対象に受信処理を実装しています
        • ActionMailer の create_body や receive に割り込んだり、TMail のデコード処理を書き換えたりと、目的のためとは言え、我ながら強引な実装だと思います。また、手元にある一部の端末、一部のケースでしかテストできていませんので、不都合などもありそうです。ご利用は自己責任で..
          • ActionMailer じゃなくて TMail の拡張にして、それを使ったMailerにしたほうが良かったかなーと今さら思ったり..
      • 文字コード変換器に NKF を使用するように変更 (機種依存文字の送信を可能に)
      • 日本語ヘッダを作成するためのメソッド base64 を追加 (Mailer 内で日本語Subjectや日本語Fromを簡単に記述)
      • RFC違反のドットが連続するアドレスが扱えるよう、TMail::Parser を置き換え

基本的な使い方は spec/mb_mail/*.rb にある spec ファイルをご覧ください。

デコメール相互変換機能は、今のところ、基本的な HTML メールが自身で組み立てできない事にはあまり役に立ちませんが、3 キャリア向けのデコメールを組み立てるよりはナンボかラクだと思います。(ゆくゆくは、DMailBuilder 的な、気の利いたものもつくりたい。)

謝辞

  • 携帯メールを扱うに当たっての base64 メソッドの実装や NKF 利用のアイデアとして、以下のサイトを参考にさせていただきました
    • http://www.kbmj.com/~shinya/rails_seminar/slides/#(33)
    • http://wiki.fdiary.net/rails/?ActionMailer
  • DMail の絵文字相互変換に Jpmobile の絵文字変換テーブルを使用させていただいています
  • ActionMailer の拡張時に TMail の幾つかのクラスを書き換え利用させていただいています
  • サンプルで使用している GIF 画像に 素材屋イチゴアポロ の素材を利用させていただいています

個人でつくってるものなので、ちまちま更新していきます。

ご意見ご感想などお待ちしています。

Clone this wiki locally