Rails按计划发送电子邮件

时间:2011-03-25 20:57:04

标签: ruby-on-rails actionmailer

我有一个应用程序,它提供了一个日历,允许您创建在日历上显示的事件。您设置的其中一个字段是事件开始的日期。我希望能够在活动当天到来时发送电子邮件提醒。

我是铁杆新手所以我不确定我需要什么或从哪里开始。我阅读了ActionMailer的rails指南并生成了一个邮件程序,我假设我需要其中一个。我还阅读了观察者的rails指南,并认为这可能是我想要实现的目标。

让我们说每天,每周7天,每天早上9点,一个工作(cron或rake任务)应该运行,搜索数据库中每个事件的'start_at'列(本地sqlite,Postegre与生产中的heroku)和如果start_date等于'今天?'然后发送动作邮件模板来提醒用户。

那么建立一个工作来检查数据库并每天启动电子邮件的最佳方式(以及使用什么工具)是什么?在未来,我想这会提前提醒。

一些伪代码:

def send_email
  if self.start_at == Date.today #assuming self.start_at.today? works too.
    // send email
end

不知道如何让它发挥作用。

1 个答案:

答案 0 :(得分:2)

你可以让一个Controller / Action执行它,然后使用像cURL这样的命令在指定的时间表上从cron作业调用url。