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设置为脚本!