日本語でメール送信@ActionMailer
config/environment.rb
ActionMailer::Base.smtp_settings = { :address => '127.0.0.1', :port => 25, :domain => 'sakusan',}
注
ちなみにRails1.2.3では
ActionMailer::Base.server_settings = {}
で設定をしていて動いたが、2.0.2ではこれだと起動時に色々と怒られたので注意
- MyMailerという一式ををActionMailerでジェネレート
$ ruby script/generate mailer MyMailer confirm
model
class MyMailer < ActionMailer::Base def confirm(addr,title,body) sent_at = Time.now @subject = title @body = body @recipients = addr @from = "#{base64('postmaster@test')}" @sent_on = sent_at @headers = {} end end
- 実際に動かして見る
controller
MyMailer.deliver_confirm("sakusan@example.com","テストメールタイトル","テストメール本文")
メール実験環境
メールの動作確認はsmtpサーバーが厳しかったり色々な理由で面倒なのですが、実験では以下のpmailというソフトが便利
ローカルにsmtpとpop3サーバーを立ててrailsから送信し、自分のメーラーでローカルのpop3サーバーにとりに行って確認できる
http://www.vector.co.jp/soft/winnt/net/se338981.html
設定は、Domeinに自分のpcドメインを入れ、ユーザー設定タブのメールボックスにユーザー追加
ここでpop3で取りに来るときのIDとパスワードを入れる。
その下にAddressとなっているが、ここは@以降はいれなくていい(ここではまった)
あとはメーラーからアカウントを作ってpop3とsmtpを127.0.0.1とかにしてメーラーでとりあえず確認した後Rails側から送信をテストすると良いです。