延迟发送电子邮件与PHP

时间:2012-07-11 02:03:50

标签: php mysql email delayed-execution

所以我有一个代码检查表上的记录并通过电子邮件发送给他们。 table1字段是:id - userid - email - subject - txt 代码如下(简化):

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

这将立即发送所有电子邮件。 我希望它能够发送随机延迟的电子邮件。 例如:发送第一封电子邮件,等待1小时,发送第二封,等待2小时,发送电子邮件3 等5小时,发送电子邮件5然后等待2小时...... 我在考虑使用函数rand(); 但我不知道如何实施延迟...... 有什么想法吗?我感谢任何输入

1 个答案:

答案 0 :(得分:3)

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

您可以使用PHP rand()函数和mysql(特别是此mysql代码:DATE_ADD(NOW(), INTERVAL $randInteger HOUR)

执行此操作

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

你可以使用cron执行此操作(如果你有一个提供cpanel的主机,你可以在cpanel中使用它)