0

railsでメール送信

railsでメールを送信するには、Iso2022jpMailerを使います。デフォルトのActionMailerを使うのですが、これはutf-8のみということでIso2022jpMailerのほうが便利です。

Iso2022jpMailerは、ActiveHeart という日本の環境で使いやすくするためのpluginに梱包されています。
具体的には以下の3 つのライブラリから構成されています。

ActiveRecordMessagesJa – ActiveRecord のヴァリデートメッセージの日本語化
ActiveRecord のヴァリデートメッセージを日本語に置き換えます。英語がハードコーディングされている部分にも対応しています。
TransSid – session を cookie でなく URL で引き回す
日本の携帯には cookie の使えない機種が多くあります。そのような端末でも session を使えるようにします。
Iso2022jpMailer – 日本語メール送信処理
メールを送信する際、文字コードを iso-2022-jp に変更します。

インストール
# ./script/plugin install http://svn.rails2u.com/public/plugins/trunk/active_heart

scaffoldみたくジェネレートしてやる
# ruby script/generate mailer ContactMailer result

モデル
class ContactMailer < Iso2022jpMailer
def result(random)
@subject = 'タイトル'
@body["random"] = random
@recipients = 'hoge@hoge.com'
@from = 'hoge@hoge.com'
@sent_on = Time.now
@headers = {}
end
end

コントローラーで呼び出し
methodにdeliver_をつけるのがみそ
def sendmail
ContactMailer.deliver_result(rand())
end

result.rhtml
下記URLより本認証を行ってください。
http://192.168.128.115:3000/account/setup?rid=<%= @random %>

大阪のWEB屋です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です