Rails循环发送电子邮件

时间:2015-05-21 16:43:15

标签: ruby-on-rails

我的Rails应用程序中运行了以下代码段,但它没有正确迭代:

task.users.each do |user|
  mail(to: user.email
       from: "Company <task." + user.id + "@mail.company.com",
       subject: "Update on " + user.assignment)
end

如果有3个用户,则只发送一封电子邮件。我已经确认没有任何错误阻止它继续。

我不能简单地将一组电子邮件传递给to选项,因为我需要在每次迭代中使用用户的数据。

这可以像上面那样完成吗?

1 个答案:

答案 0 :(得分:2)

您需要调用.deliver_now方法。

mail(to: user.email
       from: "Company <task." + user.id + "@mail.company.com",
       subject: "Update on " + user.assignment).deliver_now

我遇到了这种交付不起作用的问题,可能是因为邮件超出了范围。

所以你可能需要这样做:

class SendWeeklySummary
  def run
    User.find_each do |user|
      UserMailer.weekly_summary(user).deliver_now
    end
  end
end

Rails Guides docs - see section 2.1.4