解析Ruby中“from”和“to”字段的电子邮件地址

前端之家收集整理的这篇文章主要介绍了解析Ruby中“from”和“to”字段的电子邮件地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在电子邮件中,看起来“from”或“to”字段可以包含一个或多个地址,每个地址可以是“john@test.com”或“John D Jr< john@test.com\u0026gt;” 因此,“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>,c@c.com"

等等.

我想解析这些字段,提取每个地址的电子邮件(如果有效),以及名称是否存在.由于我不熟悉电子邮件标准,我可能会遗漏一些地址字段的情况.是否有可以执行此操作的Ruby库?

解决方法

是的,这是一个宝石;它被称为 mail.
require 'mail'

addresses = []
raw_addresses = Mail::AddressList.new("Abe Allen <a@a.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

猜你在找的Ruby相关文章