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

前端之家收集整理的这篇文章主要介绍了解析Ruby中“from”和“to”字段的电子邮件地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在电子邮件中,看起来“from”或“to”字段可以包含一个或多个地址,每个地址可以是“john@test.com”或“John D Jr< john@test.com\u0026gt;” 因此,“from”字段可能看起来像以下任何一种:
  1. "a@a.com"
  2.  
  3. "a@a.com,Bob Blue <b@b.com>"
  4.  
  5. "Abe Allen <a@a.com>,b@b.com"
  6.  
  7. "Abe Allen <a@a.com>,Bob Blue <b@b.com>,c@c.com"

等等.

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

解决方法

是的,这是一个宝石;它被称为 mail.
  1. require 'mail'
  2.  
  3. addresses = []
  4. raw_addresses = Mail::AddressList.new("Abe Allen <a@a.com>,c@c.com")
  5.  
  6. raw_addresses.addresses.each do |a|
  7. address = {}
  8.  
  9. address[:address] = a.address
  10. address[:name] = a.display_name if a.display_name.present?
  11.  
  12. addresses << address
  13. end

猜你在找的Ruby相关文章