foo*_*bar 7 ruby email parsing
在电子邮件中,它看起来像"从"或"到"字段可以包含一个或多个地址,每个地址可以像"john@test.com"或"John D Jr <john@test.com>"
因此,"from"字段可能看起来像以下任何一种:
"a@a.com"
"a@a.com, Bob Blue <b@b.com>"
"Abe Allen <a@a.com>, b@b.com"
"Abe Allen <a@a.com>, Bob Blue <b@b.com>"
"Abe Allen <a@a.com>, Bob Blue <b@b.com>, c@c.com"
Run Code Online (Sandbox Code Playgroud)
等等.
我想解析这些字段,提取每个地址的电子邮件(如果它是有效的),以及名称是否存在.由于我不熟悉电子邮件标准,我可能会遗漏一些地址字段的样子.是否有可以执行此操作的Ruby库?
dee*_*our 12
是的,这是一个宝石; 它被称为邮件.
require 'mail'
addresses = []
raw_addresses = Mail::AddressList.new("Abe Allen <a@a.com>, Bob Blue <b@b.com>, c@c.com")
raw_addresses.addresses.each do |a|
address = {}
address[:address] = a.address
address[:name] = a.display_name if a.display_name.present?
addresses << address
end
Run Code Online (Sandbox Code Playgroud)