如何使用Ruby从电子邮件中解析全名?

gfttwv5a  于 2023-06-22  发布在  Ruby
关注(0)|答案(2)|浏览(146)

我正试图从电子邮件中提取信息。我有一个.eml文件列表,并有一个ruby程序来读取每条消息,然后打印输出。
以下是我目前为止的代码:

#!/usr/bin/env ruby
require 'mail'
basedir = '.'
files = Dir.glob("*.eml")
files.each do |i|
  mail = Mail.read(i)
  puts "filename: #{i}"
  puts "from: #{mail.from}"
  puts "to: #{mail.to}"
end

它工作,但我试图从电子邮件地址获得全名。所以我不是只得到"bobloblaw@example.com"而是得到"<Bob Loblaw> bobloblaw@example.com"

5vf7fwbs

5vf7fwbs1#

您应该可以像这样使用display_names属性:

mail[:from].display_names.first
mail[:to].display_names.first

请注意,display_names是一个数组,因为一条消息可以有多个收件人。上面的代码会给你一个名字。

gmol1639

gmol16392#

您可以直接访问header来检索此信息。

mail.header[:from].formatted

更多方法请参见common_address.rb

相关问题