メール送信

「メール送信」の編集履歴(バックアップ)一覧はこちら

メール送信」(2012/02/20 (月) 06:53:46) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

Rails3標準では、「ちゃんと使える」Action Mailerがあるので、ぜひ使おう -手順としては、こんな感じかな? -まずは、コンフィグ設定 --まあ本には無かったけど、[[ここ>http://d.hatena.ne.jp/shunsuk/20110110/1294657636]]を参考にGmailの設定をしてみる ---こんな感じで、config/environments/development.rbに設定を追加 config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => 'smtp.gmail.com', :port => 587, :domain => 'gmail.com', :authentication => :plain, :user_name => '自分のメアド@gmail.com', :password => '自分のパスワード' } ---development環境だとメール送信されないので、同じくconfig/environments/development.rbにある、以下の行をコメントアウト # config.action_mailer.raise_delivery_errors = false ---古いSMTPサーバなんかの設定だと、「認証なし」とか信じられないものがあるので、その場合は:authentication以降をコメントアウトする感じかな? -次に、以下のコマンドでメーラーを生成 rails g mailer NoticeMailer sendmail_confirm --これだと、クラス名:NoticeMailerで、メソッド名:sendmail_confirmが生成される -で、こんな感じで、app/mailers/notice_mailer.rbを修正して、メール送信処理を作る #coding: utf-8 class NoticeMailer < ActionMailer::Base default from: "from@example.com", cc: "cc@example.com" def sendmail_confirm(user) @user = user mail to: "送信先のメアド", subject: "テストメール" end end -更に、こんな感じで、app/views/notice_mailer/sendmail_confirm.text.erbに、メール本文のテンプレートを書く ユーザ名:<%= @user.username %> メールアドレス:<%= @user.email %> URL:<%= url_for( :host => 'www.example.com', :controller => 'books', :action => 'index' ) %> -最後にこんな感じで、メール送信アクションを作って叩けば、メールが出る、はず? def send_mail user = User.find(1) @mail = NoticeMailer.sendmail_confirm(user).deliver render :text => "送信できた!" end --これでメールの内容は、ちゃんとuserの内容が出るね。 -同じように、HTMLテンプレートをapp/views/notice_mailer/sendmail_confirm.html.erbに置けば、HTMLメールとテキストの[multipart/alternative]形式で送られるみたいだねー ---- #counter
Rails3標準では、「ちゃんと使える」Action Mailerがあるので、ぜひ使おう -手順としては、こんな感じかな? -まずは、コンフィグ設定 --まあ本には無かったけど、[[ここ>http://d.hatena.ne.jp/shunsuk/20110110/1294657636]]を参考にGmailの設定をしてみる ---こんな感じで、config/environments/development.rbに設定を追加 config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :enable_starttls_auto => true, :address => 'smtp.gmail.com', :port => 587, :domain => 'gmail.com', :authentication => :plain, :user_name => '自分のメアド@gmail.com', :password => '自分のパスワード' } ---development環境だとメール送信されないので、同じくconfig/environments/development.rbにある、以下の行をコメントアウト # config.action_mailer.raise_delivery_errors = false ---古いSMTPサーバなんかの設定だと、「認証なし」とか信じられないものがあるので、その場合は:authentication以降をコメントアウトする感じかな? -次に、以下のコマンドでメーラーを生成 rails g mailer NoticeMailer sendmail_confirm --これだと、クラス名:NoticeMailerで、メソッド名:sendmail_confirmが生成される -で、こんな感じで、app/mailers/notice_mailer.rbを修正して、メール送信処理を作る #coding: utf-8 class NoticeMailer < ActionMailer::Base default from: "from@example.com" def sendmail_confirm(user) @user = user mail to: "送信先のメアド", subject: "テストメール" end end --CCにも送りたい場合はこんな感じね default from: "from@example.com", cc: "cc@example.com" -更に、こんな感じで、app/views/notice_mailer/sendmail_confirm.text.erbに、メール本文のテンプレートを書く ユーザ名:<%= @user.username %> メールアドレス:<%= @user.email %> URL:<%= url_for( :host => 'www.example.com', :controller => 'books', :action => 'index' ) %> -最後にこんな感じで、メール送信アクションを作って叩けば、メールが出る、はず? def send_mail user = User.find(1) @mail = NoticeMailer.sendmail_confirm(user).deliver render :text => "送信できた!" end --これでメールの内容は、ちゃんとuserの内容が出るね。 -同じように、HTMLテンプレートをapp/views/notice_mailer/sendmail_confirm.html.erbに置けば、HTMLメールとテキストの[multipart/alternative]形式で送られるみたいだねー ---- #counter

表示オプション

横に並べて表示:
変化行の前後のみ表示: