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