我有一个议程系统,您可以安排活动和约会,并为每个约会/活动选择日期和小时。
用户将选择接收预约提醒,提醒可以是活动开始前5分钟,活动开始前1小时,活动开始前2天等等。
因此,如果用户的预约安排在今天晚上10点,而提醒是“之前10米”,我需要让PHP在晚上9:50向用户发送电子邮件。现在,我必须在活动开始前提醒发送5米,10米,30米,1小时,2小时,5小时,12小时,1天和2天。
如何让PHP在用户定义的时间发送电子邮件?
非常感谢。
答案 0 :(得分:1)
您需要将系统分为两个应用程序:
第一个应用程序应该将计划的项目写入数据库,后端应用程序将从数据库中读取并发送电子邮件。
您可以构建此方法的一种方法是将计划项目存储为以下内容:
ScheduledItems
--------------
ID (int)
Title (string)
EventTime (datetime)
ReminderType (int)
ReminderSent (bool)
ReminderType
可能是您提到的提醒的查找列表的外键:
活动开始前5米,10米,30米,1小时,2小时,5小时,12小时,1天和2天
然后第二个应用程序将通过cron安排,可能每5分钟运行一次(因为这是最精细的提醒时间)并扫描ScheduledItems
ReminderSent
为假(尚未发送) )和EventTime
减去ReminderType
查找表中的某个时间跨度值小于或等于当前日期时间。
对于找到的每条记录,发送提醒并将ReminderSent
更新为true。