2011-05-09 58 views
2

如何使用新的rails 3郵件從電子郵件的前面字段獲取名稱部分?使用rails 3郵件

在實際的電子郵件有一個從外地這樣的:

<From: rogger rabbit <[email protected]>> 

如果我做mail.from.first我得到[email protected]一部分但它是如何獲取名稱位IE。野兔子?

非常感謝 裏克

回答

2

看着郵件2.2.17/lib目錄/郵件/內容/ address.rb我發現這一點:

a = Address.new('Mikel Lindsaar (My email address) <[email protected]>') 
a.format  #=> 'Mikel Lindsaar <[email protected]> (My email address)' 
a.address  #=> '[email protected]' 
a.display_name #=> 'Mikel Lindsaar' 
a.local  #=> 'mikel' 
a.domain  #=> 'test.lindsaar.net' 
a.comments  #=> ['My email address'] 
a.to_s   #=> 'Mikel Lindsaar <[email protected]> (My email address)' 

嘗試使用類似mail [:from] .addrs.collect {| a | a.display_name}

+0

非常感謝這解決了它 – rick 2011-05-10 12:01:55

0

你可能想嘗試decoded方法:

mail.from.first.decoded 
+0

tadman我得到未定義的方法'解碼'爲「[email protected]」:字符串,當我做email.from.first.decoded? – rick 2011-05-09 21:16:02

+0

我只是希望看到[Mail的API文檔](http://rdoc.info/github/mikel/mail)。 – tadman 2011-05-09 21:58:26

0

整個上午都撕裂了我的頭髮後,我終於得到這個一起工作:

message[:from].display_names.first 

當「消息」是,你可能會遍歷通過郵件對象。

注意:如果發件人沒有顯示名稱,則這將爲零。