ActionMailer - 根据rails中的日期条件发送电子邮件

时间:2012-04-09 17:27:22

标签: ruby-on-rails

我有一个rails项目,我想为其设置电子邮件通知。例如,如果记录X在5天后到期,则向所有者发送电子邮件。我有新用户注册时设置的电子邮件通知,但无法弄清楚如何根据条件发送电子邮件(如果x = y,然后发送电子邮件)。请帮忙!!

1 个答案:

答案 0 :(得分:2)

您可以使用rake任务。将其设置为cron以每天执行一次。

您可以修改和使用的rake任务代码示例:

task :send_reminds => :environment do
  Record.all.each do |remind|
    UserMailer.remind_email(record).deliver if record.expires_in(5.days)
  end
end

制作新的bash脚本,将其放在任何地方:

#!/bin/bash
cd /your/path/to/rails/app
rake send_reminds

使用crontab -e将您的任务添加到crontab。添加以下行:

0 0 * * * /your/path/to/bash/script

它将在每天午夜执行。

请记住将chmod + x设置为脚本!