我有一个ActionMailer,它有一个来自NAME的变量,因此我想测试该名称是否正确设置。
简而言之:
def test_email()
mail({
:from => '"John Smith"<john@smith.com>'
})
end
如果我然后生成邮件程序并尝试访问来自...
$ m = UserMailer.test_email
$ m.from
=> ["john@smith.com"]
我刚收到电子邮件地址。我如何访问“John Smith”部分?
答案 0 :(得分:3)
您传入邮件的字符串(将作为From:
标题包含在内)与邮件来自的实际电子邮件地址之间存在差异(因此将在SMTP中使用MAIL FROM
命令)。
如果要查看传入的值,请使用:
m[:from].value
答案 1 :(得分:1)
您可以从标题中提取它。
m.header.select { |i| i.name == "From" }.first.value[/\"(.*?)\"/,0]
如果您想删除疑问报价,请执行以下操作:
m.header.select { |i| i.name == "From" }.first.value[/\"(.*?)\"/,0][1..-2]