使用php延迟发送电子邮件

使用php延迟发送电子邮件,php,mysql,email,delayed-execution,Php,Mysql,Email,Delayed Execution,所以我有一个代码可以检查表上的记录并发送电子邮件。 表1字段为:id-userid-email-subject-txt 代码如下(简化): 这将一次发送所有电子邮件。 我希望它能够发送随机延迟的电子邮件。 例如:发送第一封电子邮件,等待1小时,发送第二封,等待2小时,发送电子邮件3小时 等待5小时,发送电子邮件5小时,然后等待2小时。。。 我正在考虑使用函数rand() 但我不知道如何实施延迟。。。 有什么想法吗?我很欣赏任何输入生成随机数,将它们以小时格式添加到时间戳中,并将它们保存在数据库中

所以我有一个代码可以检查表上的记录并发送电子邮件。 表1字段为:id-userid-email-subject-txt 代码如下(简化):

这将一次发送所有电子邮件。 我希望它能够发送随机延迟的电子邮件。 例如:发送第一封电子邮件,等待1小时,发送第二封,等待2小时,发送电子邮件3小时 等待5小时,发送电子邮件5小时,然后等待2小时。。。 我正在考虑使用函数
rand()
但我不知道如何实施延迟。。。

有什么想法吗?我很欣赏任何输入

生成随机数,将它们以小时格式添加到时间戳中,并将它们保存在数据库中

您可以使用PHP
rand()
函数和mysql(特别是这个mysql代码:
DATE\u ADD(NOW(),INTERVAL$randinger HOUR)
)来实现这一点

每小时运行一个脚本,检查数据库是否有应发送的电子邮件/发送的电子邮件,然后根据返回的信息执行


你可以使用CRON(如果你有一个主机,它提供了cPAND),/P>创建一个带有预定电子邮件的表,创建随机的发送时间,并根据你计划发送的电子邮件的数量,发送一个专用的工作表,考虑为你的消息队列使用一个不同的存储引擎。例如,如果您正在使用Oracle或MySQL作为站点数据,您可以考虑使用MangGDB或CouCh来处理您的站点数据。@特拉维斯:使用Oracle或MySQL进行电子邮件调度有什么不对吗?没有什么问题。我之所以提到它,是因为在我目前的工作中,我们使用Oracle处理事务性数据,使用MongoDB处理电子邮件队列、报告数据、缓存和其他一些小事情。如果对这些小事情进行密集查询,则不会对Oracle处理的更重要的事务性工作产生影响。

$sql = "SELECT * FROM table1 where userid='$userid'";
$results = mysql_query($sql);
while ($row = mysql_fetch_array($results)) 
{
mail($row['email'],$row['subject'],$row['txt']);
}