diff options
-rw-r--r-- | app/models/exim_log.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/app/models/exim_log.rb b/app/models/exim_log.rb index ef9afe317..cbe2277c5 100644 --- a/app/models/exim_log.rb +++ b/app/models/exim_log.rb @@ -77,14 +77,18 @@ class EximLog < ActiveRecord::Base result = {} f.each do |line| emails = email_addresses_on_line(line) - # Assume the log file was written using syslog and parse accordingly - queue_id = SyslogProtocol.parse("<13>" + line).content.match(/^\S+: (\S+):/)[1] + queue_id = extract_queue_id_from_syslog_line(line) result[queue_id] = [] unless result.has_key?(queue_id) result[queue_id] = (result[queue_id] + emails).uniq end result end + def EximLog.extract_queue_id_from_syslog_line(line) + # Assume the log file was written using syslog and parse accordingly + SyslogProtocol.parse("<13>" + line).content.match(/^\S+: (\S+):/)[1] + end + def EximLog.email_addresses_on_line(line) line.scan(/request-[^\s]+@#{Configuration::incoming_email_domain}/).sort.uniq end |