ジェネレータで mailer を作成する。
rails g mailer TestMailer
config/application.rb にメール設定を追加
module Sample class Application < Rails::Application # ---- なんかいろいろ ---- # mail setting config.action_mailer.delivery_method = :smtp config.action_mailer.smtp_settings = { :enable_starttls_auto => false, :address => 'smtp.example.com', :port => 587, :domain => 'localhost', :user_name => 'user', :password => 'password' } end end
メール本文を erb で。
<%= @text %>
配信メソッドを mailers/test_mailer.rb に追加。
# -*- coding: utf-8 -*- require 'net/pop' class TestMailer < ActionMailer::Base # テストメールを配信する def test @text = 'this is test mail' # インスタンス変数で view にデータを渡せる mail( :subject => 'Test mail', :from => 'from@example.com', :to => 'to@example.com' ) authenticate end private # 認証メソッド def authenticate Net::POP3.auth_only(self.smtp_settings[:address], 110, self.smtp_settings[:user_name], self.smtp_settings[:password]) end end
実行
rails runner "TestMailer.test.deliver"
これで、deliver メソッドでの配信前に POP3 の認証が終わっているのでメールの送信ができる。
mailer をたくさん作るなら、ActionMailer::Base を拡張するようにしたほうがいいかな。
参考にしたサイト:てらじろぐ | ActionMailer設定色々
0 件のコメント :
コメントを投稿