diff options
-rw-r--r-- | app/models/incoming_message.rb | 5 | ||||
-rw-r--r-- | lib/mail_handler/backends/mail_backend.rb | 5 | ||||
-rw-r--r-- | lib/mail_handler/backends/tmail_backend.rb | 4 |
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" |