ErrorMailerを少し弄った

gemでインストールできるらしい。
んで、今まで使ってたんだけど、特定のIPからアクセスがあった場合は、メールを飛ばさないというような設定が必要になりやってみました。

  • /var/hoge/Ips.csvには、特定IPが含まれています。

"111.111.111.111","222.222.222.222","適当なIPですよ","1行目ですよ"
"112.111.111.111","222.222.222.222","適当なIPですよ","2行目ですよ"
"113.111.111.111","222.222.222.222","適当なIPですよ","3行目ですよ"

  • 赤い部分が今回カスタマイズした部分

require 'csv'
class ErrorMailer < ActionMailer::Base
# Sends the details of an unhandled exception.
def app_exception(exception, session_data, params, request, sent_at = TIME.now)
send_allow = true
CSV.open('/var/hoge/Ips.csv','r') do |row|
unless request.env.to_s.index(row[0].nil?
send_allow = false
break
end
end
if send_allow == true
@subject = "hoge Exception: #{exception.class.to_s}: #{exception.to_s}"
@body = {
:exception => exception,
:session_data => session_data,
:params => params,
:environment => request.env,
:request => request
}
@recipients ='hoge@hoge.com' # 送信先
@from = 'hoge@hoge.com' # 送信元
@sent_on = sent_at
@headers = {
"importance" => 'high'
}
end
end
end

インデント消えてますが、ごめんなさい