aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/incoming_message.rb5
-rw-r--r--lib/mail_handler/backends/mail_backend.rb5
-rw-r--r--lib/mail_handler/backends/tmail_backend.rb4
3 files changed, 10 insertions, 4 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index 09fc652aa..d6ced122b 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -138,10 +138,7 @@ class IncomingMessage < ActiveRecord::Base
self.extract_attachments!
self.sent_at = self.mail.date || self.created_at
self.subject = self.mail.subject
- # XXX can probably remove from_name_if_present (which is a
- # monkey patch) by just calling .from_addrs[0].name here
- # instead?
- self.mail_from = self.mail.from_name_if_present
+ self.mail_from = MailHandler.get_from_name(self.mail)
begin
self.mail_from_domain = PublicBody.extract_domain_from_email(self.from_email)
rescue NoMethodError
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb
index ac543540e..87c0d6181 100644
--- a/lib/mail_handler/backends/mail_backend.rb
+++ b/lib/mail_handler/backends/mail_backend.rb
@@ -50,6 +50,11 @@ module MailHandler
first_from ? first_from.address : nil
end
+ def get_from_name(mail)
+ first_from = first_from(mail)
+ first_from ? first_from.name : 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 fa9f3fbb6..d2eed39d4 100644
--- a/lib/mail_handler/backends/tmail_backend.rb
+++ b/lib/mail_handler/backends/tmail_backend.rb
@@ -53,6 +53,10 @@ module MailHandler
mail.from_addrs[0].spec
end
+ def get_from_name(mail)
+ mail.from_name_if_present
+ 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"