From 6fbd9fcae218b675b298d7b4101e2f184e56818c Mon Sep 17 00:00:00 2001 From: Patrick J Cherry Date: Thu, 4 Aug 2011 16:11:37 +0100 Subject: Updated pop3 server to be configurable --- lib/mauve/configuration_builders/server.rb | 10 ++++++++++ lib/mauve/notifiers/email.rb | 11 +++++++++-- lib/mauve/notifiers/templates/email.html.erb | 2 +- lib/mauve/pop3_server.rb | 10 +++++++--- 4 files changed, 27 insertions(+), 6 deletions(-) (limited to 'lib') diff --git a/lib/mauve/configuration_builders/server.rb b/lib/mauve/configuration_builders/server.rb index 0fa811b..3a9f5ec 100644 --- a/lib/mauve/configuration_builders/server.rb +++ b/lib/mauve/configuration_builders/server.rb @@ -64,6 +64,15 @@ module Mauve end end + class Pop3Server < ObjectBuilder + is_attribute "ip" + is_attribute "port" + + def builder_setup + @result = Mauve::Pop3Server.instance + end + end + class Server < ObjectBuilder # # Set up second-level builders @@ -74,6 +83,7 @@ module Mauve is_builder "timer", Timer is_builder "notifier", Notifier is_builder "heartbeat", Heartbeat + is_builder "pop3_server", Pop3Server is_attribute "hostname" is_attribute "database" diff --git a/lib/mauve/notifiers/email.rb b/lib/mauve/notifiers/email.rb index 03384f7..8f2d32b 100644 --- a/lib/mauve/notifiers/email.rb +++ b/lib/mauve/notifiers/email.rb @@ -24,7 +24,6 @@ module Mauve @password = nil @login_method = nil @from = "mauve@localhost" - @hostname = "localhost" @signature = "This is an automatic mailing, please do not reply." @subject_prefix = "" end @@ -73,7 +72,15 @@ module Mauve m.header.to = destination m.header.from = @from - m.header.date = alert.updated_at.to_time || MauveTime.now + m.header.date = case alert.update_type + when "cleared" + alert.cleared_at + when "acknowledged" + alert.acknowledged_at + else + alert.raised_at + end + m.header['Content-Type'] = "multipart/alternative" txt_template = File.join(File.dirname(__FILE__), "templates", "email.txt.erb") diff --git a/lib/mauve/notifiers/templates/email.html.erb b/lib/mauve/notifiers/templates/email.html.erb index 24b5e7b..fb33de6 100644 --- a/lib/mauve/notifiers/templates/email.html.erb +++ b/lib/mauve/notifiers/templates/email.html.erb @@ -1,7 +1,7 @@ -

<%= alert.update_type.upcase %>:<% +

<%= alert.update_type.upcase %>: <% case alert.update_type when "cleared" %><%= alert.cleared_at.to_s_relative %><% diff --git a/lib/mauve/pop3_server.rb b/lib/mauve/pop3_server.rb index 36a6cd2..b8253b0 100644 --- a/lib/mauve/pop3_server.rb +++ b/lib/mauve/pop3_server.rb @@ -28,7 +28,9 @@ module Mauve # # Use ipaddr to sanitize our IP. # - @ip = IPAddr.new(i) + IPAddr.new(i) + + @ip = i end def logger @@ -273,7 +275,9 @@ module Mauve def messages if @messages.empty? @messages = [] - smtp = Mauve::Notifiers::Email::Default.new("TODO: why do I need to put this argument here?") + + email = Configuration.current.notification_methods['email'] + alerts_seen = [] # @@ -310,7 +314,7 @@ module Mauve alerts_seen << [a.alert_id, a.update_type] - @messages << [a, smtp.prepare_message(self.user, a.alert, [])] + @messages << [a, email.prepare_message(self.user, a.alert, [])] end end -- cgit v1.2.1