diff options
Diffstat (limited to 'lib/mail_handler/backends/mail_backend.rb')
-rw-r--r-- | lib/mail_handler/backends/mail_backend.rb | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/lib/mail_handler/backends/mail_backend.rb b/lib/mail_handler/backends/mail_backend.rb index 6f965172b..4a8bd446c 100644 --- a/lib/mail_handler/backends/mail_backend.rb +++ b/lib/mail_handler/backends/mail_backend.rb @@ -36,9 +36,14 @@ module MailHandler # 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] + if mail[:from] + begin + mail[:from].addrs[0] + mail[:from].decoded + return mail[:from].addrs[0] + rescue + return mail[:from].value + end else nil end @@ -47,13 +52,29 @@ module MailHandler # Return the first from address if any def get_from_address(mail) first_from = first_from(mail) - first_from ? first_from.address : nil + if first_from + if first_from.is_a?(String) + return nil + else + return first_from.address + end + else + return nil + end end # Return the first from name if any def get_from_name(mail) first_from = first_from(mail) - first_from ? first_from.name : nil + if first_from + if first_from.is_a?(String) + return nil + else + return first_from.name + end + else + return nil + end end # Format |