处理提醒电子邮件的正确方法是什么?

时间:2016-01-19 10:54:52

标签: ruby-on-rails email

如果用户未在三天内撰写任何新帖子,我的rails应用会发送提醒电子邮件。这被定义为计划的rake任务。

每天安排任务。当然,任务应该只为每个用户触发一次。用户应该在第三天获得它,然后再也不会。在第十天,我可能会发一封完全不同的电子邮件。

  • 在哪里以及如何让应用知道用户已收到提醒?
  • 清除设置的地点,时间和方式"收到提醒状态" (如果用户撰写新帖子)?
  • 如何查看多个提醒电子邮件(例如5天,10天,15天后)?

我知道在用户表中添加一个名为received_reminder的列是一个选项。当您触发任务时,您可以将received_reminder更改为true并在用户创建新帖子时再次将其清除。多个提醒将意味着每个提醒的新列。例如。 received_reminder_5days等等 - 这看起来似乎没有干,我怀疑一般可能有更好的方式。

提醒电子邮件方面的最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

您甚至不需要额外的字段。您可以设置数组reminder_days = [3,5,10,15](例如),然后每天检查一次用户上次发布的日期d(以天为单位)(可以从数据库中获取)是否为成员reminder_days。如果是,则发送提醒。如果n+1是数组nd的索引,则此提醒是reminder_days提醒。

即使在每日发送提醒电子邮件的过程被混合的情况下也要非常安全,您可以存储已在字段reminder_count中发送的提醒的数量。每当用户创建新帖子时,此字段都设置为0,并且每当发送提醒时它都会增加。使用此字段,您可以随时查看是否仍需要立即发送提醒(请检查n==reminder_count)。