如何从名称访问ActionMailer

时间:2015-02-27 19:40:10

标签: ruby-on-rails ruby actionmailer

我有一个ActionMailer,它有一个来自NAME的变量,因此我想测试该名称是否正确设置。

简而言之:

  def test_email()
    mail({
      :from    => '"John Smith"<john@smith.com>'
    })
  end

如果我然后生成邮件程序并尝试访问来自...

$ m = UserMailer.test_email
$ m.from
=> ["john@smith.com"]

我刚收到电子邮件地址。我如何访问“John Smith”部分?

2 个答案:

答案 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]