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

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

您可以使用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设置为脚本!