Rails Runner或Rake任务向注册用户发送一次性电子邮件

时间:2011-09-08 21:26:56

标签: ruby-on-rails ruby-on-rails-3 rake actionmailer

我想向用户发送一次性的电子邮件,并且是 ActionMailer 的新手,不知道如何像这样一次性接近?生产机器上的 Rails Runner Rake任务,甚至可能是 rails console ?!

图I我为user_mailer.rb添加了一个动作。并在app/views/user_mailer/中创建一个随附的视图。只是不确定如何触发它。我想抓住几个用户并分批发送给他们。很乐意手动执行此操作...因为我们在接下来的几天/几周内错开发送邮件。

感谢任何建议或意见。

1 个答案:

答案 0 :(得分:1)

如果您希望尽可能自动地执行此操作,我会查看whenever gem。它允许您将rake(或runner)任务自动化为cron作业。您可以在lib中的某个地方添加一个脚本,该脚本使用ActionMailer生成电子邮件,并安排何时与/ cron一起发送。

就批量发送而言, 我会做这样的事情:

Users.find_each(:batch_size => n) do |m|
  mail = UserMailer.new(m.email_address, message)
  mail.deliver
end

显然,那是近伪码,但希望它能让你走上正轨?