Rails3.2のAction Mailer単体でメールを送信しようとしたが、
bodyメソッドが廃止されており、本文の指定方法が良く分からなかった。
いろいろ調べたところ、以下のサイトに書いてあった。
http://guides.rubyonrails.org/action_mailer_basics.html
renderメソッドを使って、
render :text => '本文'
とするようだ。
以下、サンプルコードを示す。
require 'action_mailer'
# SMTPサーバ利用時のオプション
ActionMailer::Base.smtp_settings = {
:address=>'localhost',
:port=>'25',
:domain=>'domain'
:user_name=>'user_name',
:password=>'password',
:authentication=>:plain
}
ActionMailer::Base.raise_delivery_errors = true
ActionMailer::Base.delivery_method = :smtp
class HelloMailer < ActionMailer::Base
default :from => 'hogehoge@sample.com'
def createMessage(to, subject, body)
mail(:to => to,
:subject => subject) do |format|
format.text { render :text => body }
end
end
end
HelloMailer.createMessage('fugafuga@sample.com', 'hello', 'こんにちは、世界!').deliver
※メールサーバ指定部分のコードは http://d.hatena.ne.jp/tackun/20101028/1288282803 を参考にした。
このコードでgmailへ送信してみたら、正しく受信できた。
ただし、送信内容がRFCに従っているかは不明。