aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mail_handler/backends
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mail_handler/backends')
-rw-r--r--lib/mail_handler/backends/mail_backend.rb17
-rw-r--r--lib/mail_handler/backends/tmail_backend.rb8
2 files changed, 25 insertions, 0 deletions
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb
index b85ce64a6..ac543540e 100644
--- a/lib/mail_handler/backends/mail_backend.rb
+++ b/lib/mail_handler/backends/mail_backend.rb
@@ -29,10 +29,27 @@ module MailHandler
part_file_name.nil? ? nil : part_file_name.dup
end
+ # Get the body of a mail part
def get_part_body(mail_part)
mail_part.body.decoded
end
+ # Return the first from field if any
+ def first_from(mail)
+ if mail[:from] && mail[:from].addrs[0]
+ mail[:from].decoded
+ mail[:from].addrs[0]
+ else
+ nil
+ end
+ end
+
+ # Return the first from address if any
+ def get_from_address(mail)
+ first_from = first_from(mail)
+ first_from ? first_from.address : nil
+ end
+
# Format
def address_from_name_and_email(name, email)
if !MySociety::Validate.is_valid_email(email)
diff --git a/lib/mail_handler/backends/tmail_backend.rb b/lib/mail_handler/backends/tmail_backend.rb
index 2a61a5d05..fa9f3fbb6 100644
--- a/lib/mail_handler/backends/tmail_backend.rb
+++ b/lib/mail_handler/backends/tmail_backend.rb
@@ -41,10 +41,18 @@ module MailHandler
return part_file_name
end
+ # Get the body of a mail part
def get_part_body(mail_part)
mail_part.body
end
+ def get_from_address(mail)
+ if mail.from_addrs.nil? || mail.from_addrs.size == 0
+ return nil
+ end
+ mail.from_addrs[0].spec
+ end
+
def address_from_name_and_email(name, email)
if !MySociety::Validate.is_valid_email(email)
raise "invalid email " + email + " passed to address_from_name_and_email"