2013年1月8日火曜日

RubyからSMTPメールを送る方法

ActionMailerもありますが、
とりあえずスクリプトを実行してエラーが出たらメール通知したいので
簡単にできるSMTPメールにしました。

rescueのところで、下記を実装するとエラーが発生したらメール通知してくれます。
rescue => e
 msg = e.backtrace

な感じで書いて、下記の本文にあたるところに #{msg} を書けば、
バックトレースとともに送信される

===
require 'net/smtp'

#SMTP.start でセッションを開く
#第一引数がサーバのアドレスで第二引数がポート番号
#ブロックを使うとセッションの終了を自動的にやってくれる。
Net::SMTP.start( 'your.smtp.server', 25 ) {|smtp|
  #send_mail(テンプレート, 送信元, 送信先)
    smtp.send_mail <<EndOfMail, 'your@mail.address', 'to@some.domain'
From: Your Name <your@mail.address>
To: Dest Address <to@some.domain>
Subject: xxx script error

#{msg}
EndOfMail
}

【参考】
http://d.hatena.ne.jp/gakeno_ueno_horyo/20100917/1284705203

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。