如何使用新的 rails 3 邮件从电子邮件的正面字段获取名称部分?
在实际的电子邮件中,有一个像这样的发件人字段:
<From: rogger rabbit <roggerrabbit@hotmail.com>>
如果我这样做mail.from.first
我会得到roggerrabbit@hotmail.com
部分,但它如何得到名字,即罗杰兔?
多谢瑞克
查看mail-2.2.17/lib/mail/elements/address.rb,我发现:
a = Address.new('Mikel Lindsaar (My email address) <mikel@test.lindsaar.net>')
a.format #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
a.address #=> 'mikel@test.lindsaar.net'
a.display_name #=> 'Mikel Lindsaar'
a.local #=> 'mikel'
a.domain #=> 'test.lindsaar.net'
a.comments #=> ['My email address']
a.to_s #=> 'Mikel Lindsaar <mikel@test.lindsaar.net> (My email address)'
尝试使用 mail[:from].addrs.collect {|a| a.display_name}
您可能想尝试decoded
方法:
mail.from.first.decoded
在扯了一整个早上的头发之后,我终于得到了这个工作:
message[:from].display_names.first
其中"message"是您可能正在迭代的邮件对象。
注意:如果发件人没有显示名称,则此名称将为 nil。