2013-02-05 71 views
2

如何通過Net::IMAP在Rails中獲取電子郵件發件人的姓名(不是電子郵件地址)?Rails IMAP:獲取發件人姓名

下面是我在Rails的使用代碼來獲取發送者的電子郵件:

imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false) 
imap.login(USERNAME, PASSWORD) 
imap.select('Inbox') 

imap.search(["ALL"]).each do |message_id| 
    emails = imap.fetch(message_id,'RFC822')[0].attr['RFC822'] 
    mail = Mail.read_from_string emails 
    @email = Email.create(:sender => mail.from[0], :name => 'NAME_HERE') 
end 

imap.disconnect 

mail.from[0]正確地獲取電子郵件地址,但我怎麼能得到發送者的名字嗎?

回答

2

當前的解決方案是使用mail[:from].display_names.first

你會具有以下新增的旁邊:sender => mail.from[0]

:name => mail[:from].display_names.first