1

我有一个议程系统,您可以在其中安排活动和约会,并为每个约会/活动选择日期和时间。

用户会选择接收其约会的提醒,提醒可以是活动开始前5分钟、活动开始前1小时、活动开始前2天等...

因此,如果用户的约会安排在今天晚上 10:00 并且提醒是“10m 之前”,我需要让 php 在晚上 9:50 向用户发送电子邮件。现在,我必须在活动开始前 5m、10m、30m、1h、2h、5h、12h、1d 和 2d 发送提醒。

如何让 PHP 在用户定义的时间发送电子邮件?

非常感谢。

4

1 回答 1

1

您需要将系统分成两个应用程序:

  • 用户用来安排事情的应用程序。
  • 发送电子邮件的后端应用程序。

第一个应用程序应将计划项目写入数据库,后端应用程序将从数据库中读取并发送电子邮件。

您可以构建它的一种方法是让计划的项目存储如下:

ScheduledItems
--------------
ID (int)
Title (string)
EventTime (datetime)
ReminderType (int)
ReminderSent (bool)

ReminderType可能是您提到的提醒查找列表的外键:

活动开始前5m、10m、30m、1h、2h、5h、12h、1d、2d

然后将通过 cron 安排第二个应用程序可能每 5 分钟运行一次(因为这是最精细的提醒时间)并扫描ScheduledItems哪里ReminderSent是假的(尚未发送)并EventTime减去ReminderType查找表中的一些时间跨度值小于或等于当前日期时间。

For each record it finds, send the reminder and update ReminderSent to true.

于 2013-01-10T02:50:23.317 回答