Ruby on rails 使用Rails3邮件
如何使用新的rails 3 mail从电子邮件的前端字段获取名称部分 在实际电子邮件中,有一个“发件人”字段,如下所示:Ruby on rails 使用Rails3邮件,ruby-on-rails,ruby,ruby-on-rails-3,email,Ruby On Rails,Ruby,Ruby On Rails 3,Email,如何使用新的rails 3 mail从电子邮件的前端字段获取名称部分 在实际电子邮件中,有一个“发件人”字段,如下所示: <From: rogger rabbit <roggerrabbit@hotmail.com>> 如果我先发mail.from.我得到roggerrabbit@hotmail.compart但它是如何命名的呢,比如rogger rabbit 非常感谢 Rick您可能需要尝试解码方法: mail.from.first.decoded 查看mail
<From: rogger rabbit <roggerrabbit@hotmail.com>>
如果我先发mail.from.
我得到roggerrabbit@hotmail.com
part但它是如何命名的呢,比如rogger rabbit
非常感谢
Rick您可能需要尝试
解码方法:
mail.from.first.decoded
查看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)'
a=Address.new('Mikel Lindsaar(我的电子邮件地址)'))
a、 格式#=>“Mikel Lindsaar(我的电子邮件地址)”
a、 地址#=>'mikel@test.lindsaar.net'
a、 显示“米克尔·林德萨尔”
a、 本地#=>“米克尔”
a、 域#=>“test.lindsaar.net”
a、 评论#=>[“我的电子邮件地址”]
a、 致“Mikel Lindsaar(我的电子邮件地址)”
尝试使用类似邮件[:from].addrs.collect{| a | a.display_name}在整个上午把头发扯掉之后,我终于找到了这个解决方案:
message[:from].display_names.first
其中“message”是您可能正在迭代的邮件对象
注意:如果发送者没有显示名称,则该名称将为零。tadman i get undefined method'decoded'for“regerrabbit@hotmail.com“:当我发送email.from.first.decoded时使用字符串???我只是浏览了一下,希望是这样。”。