使用Mikel的Mail gem访问未解析的电子邮件地址

时间:2014-02-08 22:59:55

标签: ruby-on-rails email

我正在成功使用Mikel的Mail gem,但是我试图从电子邮件地址中取出这个名字而没有太多运气。

如果我收到'Mikel Lindsaar(mikel@test.lindsaar.net)',那么我可以访问mikel@test.lindsaar.net但不能访问'Mikel Lindsaar'。

我一直在使用邮件对象本身的to / cc / from方法。我不确定如何在文档中使用Mail :: Address类:http://www.ruby-doc.org/gems/docs/m/mail-2.5.4/Mail/Address.html

1 个答案:

答案 0 :(得分:2)

以下是您需要的简化示例:

mail = Mail.new do 
  from "Mikel Lindsaar <mikel@test.lindsaar.net>"
end

mail.header[:from].field.display_names #=> ["Mikel Lindsaar"]

以上是有点尴尬但有效。标头[:from]上的#field方法返回Mail::FromField,它或多或少是Mail::CommonAddress,后者又封装了多个Mail::Address es。有点复杂吧? CommonAddress有一些方便的方法可以操作地址列表。

您可以通过

获得相同的FromField实例
mail.from.instance_variable_get("@field")