我有一个议程系统,您可以在其中安排事件和约会,并为每个约会/事件选择日期和小时。
用户将选择接收预约提醒,提醒可以是活动开始前5分钟、活动开始前1小时、活动开始前2天等。
因此,如果用户的约会被安排在今天晚上10:00,而提醒是“10:00之前”,我需要让php在晚上09:50向用户发送一封电子邮件。现在,我将不得不在活动开始前5m,10m,30m,1h,2h,5h,12h,1d和2d发送提醒。
如何让PHP在用户定义的时间内发送电子邮件?
非常感谢。
发布于 2013-01-10 10:50:23
您需要将系统分成两个应用程序:
第一个应用程序应该将计划的项目写入数据库,而后端应用程序将从数据库中读取并发送电子邮件。
一种可能的方法是将计划项存储为以下内容:
ScheduledItems
--------------
ID (int)
Title (string)
EventTime (datetime)
ReminderType (int)
ReminderSent (bool)ReminderType可能是您提到的提醒的查找列表的外键:
活动开始前5m、10m、30m、1h、2h、5h、12h、1d、2d
然后,第二个应用程序将通过cron调度为可能每5分钟运行一次(因为这是最细粒度的提醒时间),并扫描ReminderSent为false (尚未发送)且EventTime减去ReminderType查询表中的某个timespan值小于或等于当前日期时间的ScheduledItems。
对于它找到的每个记录,发送提醒并将ReminderSent更新为true。
https://stackoverflow.com/questions/14250003
复制相似问题