ジェネレータで 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 件のコメント :
コメントを投稿