lib/request_log_analyzer/mailer.rb in request-log-analyzer-1.4.1 vs lib/request_log_analyzer/mailer.rb in request-log-analyzer-1.4.2
- old
+ new
@@ -1,37 +1,47 @@
module RequestLogAnalyzer
+ # Mail report to a specified emailaddress
class Mailer
attr_accessor :data, :to, :host
# Initialize a mailer
- # <tt>to</tt> to address
- # <tt>host</tt> the mailer host
+ # <tt>to</tt> to email address to mail to
+ # <tt>host</tt> the mailer host (defaults to localhost)
# <tt>options</tt> Specific style options
+ #
# Options
- # <tt>:debug</tt> Do not actually mail
+ # * <tt>:debug</tt> Do not actually mail
+ # * <tt>:from_alias</tt> The from alias
+ # * <tt>:to_alias</tt> The to alias
+ # * <tt>:subject</tt> The message subject
def initialize(to, host = 'localhost', options = {})
require 'net/smtp'
@to = to
@host = host
@options = options
@data = []
end
+ # Send all data in @data to the email address used during initialization.
+ # Returns array containg [message_data, from_email_address, to_email_address] of sent email.
def mail
- from = @options[:from] || 'contact@railsdoctors.com'
- from_alias = @options[:from_alias] || 'Request-log-analyzer reporter'
- to_alias = @options[:to_alias] || to
- subject = @options[:subjeect] || "Request log analyzer report - generated on #{Time.now.to_s}"
+ from = @options[:from] || 'contact@railsdoctors.com'
+ from_alias = @options[:from_alias] || 'Request-log-analyzer reporter'
+ to_alias = @options[:to_alias] || to
+ subject = @options[:subject] || "Request log analyzer report - generated on #{Time.now.to_s}"
+ content_type = ""
+ content_type = 'Content-Type: text/html; charset="ISO-8859-1";' if @data.map{|l| l.include?('html')}.include?(true)
msg = <<END_OF_MESSAGE
From: #{from_alias} <#{from}>
To: #{to_alias} <#{@to}>
Subject: #{subject}
+#{content_type}
#{@data.to_s}
END_OF_MESSAGE
-
+
unless @options[:debug]
Net::SMTP.start(@host) do |smtp|
smtp.send_message msg, from, to
end
end
\ No newline at end of file