ruby on rails 操作邮件程序未接收到来自 yaml 文件的数组的电子邮件

ruby on rails action mailer not receiving emails to arrays from a yaml file

我有一个问题,我可以通过硬编码数组的邮件程序发送电子邮件。 但是对于从 config.yml

中获取的数组,电子邮件不会通过

这是我的 config.yml

company:
  email:
    - user1@company.com
    - User1.Lastname@company.com
    - User2.Lastname@company.com

这是我的邮件 class:

class ReportMailer < ActionMailer::Base
  default :from => "donotreply@company.com"


  def send_report(company, file)

      mail(:to=> "#{CONFIG[company]['email']}", :subject => "Daily  Report")
    end
  end
end

当 运行 它出现在我的 rails 控制台并查看日志时,似乎一切都执行得很好,但我没有收到我的电子邮件:

[DEBUG] 2016-04-21 18:21:29 :: Date: Thu, 21 Apr 2016 18:21:29 -0400
From: donotreply@merchantlink.com
to: ["user1@company.com", "User1.Lastname@company.com","User2.Lastname@company.com"]
 ...
 ...

 [INFO] 2016-04-21 18:21:29 ::
Sent mail to ["user1@company.com", "User1.Lastname@company.com", "User2.Lastname@company.com"]

如果我更改我的代码并将其替换为硬编码数组而不是从 config.yml 读取,它工作正常。

我是不是读错了 yaml 数组?

正如@Alfie 在评论中正确指出的那样,您正在将字符串化数组传递给 to:

CONFIG[company]['email'] returns 一个数组,然后字符串插值在其上调用 to_s,最后得到

"['user1@company.com', 'User1.Lastname@company.com','User2.Lastname@company.com']"

只传入数组,不插入字符串:

mail(:to=> CONFIG[company]['email'], :subject => "Daily  Report")