JpMailerプラグイン
これはなに?
ActionMailer:Baseのサブクラス。
日本語のPC用のメール及び携帯電話用のメールを送る際に便利かなぁというもの。
動作環境
できること・やりたかったこと
- @@default_charset等のクラス変数は変更しない。(他への影響を抑えるため)
- ISO-2022-JPで送る。
- 携帯電話のメールアドレスだったら(複数指定したときは先頭のアドレス)、各キャリアに適した文字コードで送る。(MIME Base64エンコードされます。)
- 携帯電話のとき、携帯用テンプレートがあればそっちを使用。
- Jpmobile(Jpmobile:Emoticon)がインストールされてれば携帯電話用テンプレートで絵文字を使える。書式はJpmobileに準じる。
- 携帯電話のみ、アドレスの書式チェックを簡易なものに。(携帯キャリアがRFC違反の変態アドレスを容認しているため)
- 携帯電話のとき、全角カタカナ→半角カタカナ変換。
- Willcomは僕が使えない地域在住なので無視。
インストール
script/plugin install http:/taslam-plugins.googlecode.com/svn/trunk/jp_mailer/
使い方
モデル
app/models/user_notify.rb
# JpMailer:Baseを継承するほかはかわりません。 class UserNotify < JpMailer::Base def signup(user,password,verify_url) @recipients = "#{user.name} <#{user.email}>" @from = 'たすらむ <taslam@example.com>' @sent_on = Time.now # 件名には絵文字も使えます。 # ただし携帯だとわかってるときだけか、自前で判別してから付けるべき。 @subject = "ユーザ登録確認" @body["userid"] = user.userid @body["password"] = password @body["url"] = verify_url end end
ビュー(テンプレート)
PC用
app/views/user_notify/signup.erb
ユーザ仮登録完了のお知らせです。 下記URLより、登録処理を完了してください。 <%= @url %> 登録内容 【ユーザID 】<%= @userid %> 【パスワード】<%= @password %> ※この情報は他者に見せないように、厳重に保管してください。
携帯メール用
※なかったらPC用を使う。
app/views/user_notify/mobile/signup.erb
ユーザ仮登録できたよ 下記URLから登録処理を続けてね <%= @url %> 登録内容 【ユーザID 】<%= @userid %> 【パスワード】<%= @password %> ※この情報は他者に見せないように、厳重に保管してね。
参考にさせていただいたところ
[http:/jpmobile-rails.org/:title=jpmobile] jpmobileにはいつもお世話になってます。
[http:/wota.jp/ac/?date=20050731:title=ヽ( ・∀・)ノくまくまー Iso2022jpMailer] はじめて買ったRails本はこの方の著書。舞波乙!
[http:/d.hatena.ne.jp/urekat/20071030/1193728474:title=urekatのスカンク日記3] いいかげんな携帯のメールアドレスを無理矢理なんとかパースするぜ] あいまいパーサのコードを流用させていただきました。
追記 2008.07.15
文字コードの判定に失敗するとき、メールの件名が文字化けしていた不具合を修正しました。
追記 2008.07.30
Rails 2.1(TMail 1.2.3)に対応したつもり。