PHP电子邮件Cron作业

PHP电子邮件Cron作业,php,email,cron,Php,Email,Cron,我正在开发一个php脚本,希望在其中向用户发送自动邮件。 我用php脚本成功地实现了一个cron作业,它检查php邮件队列表中的待处理邮件。 脚本工作正常,但cron作业工作异常,它向用户发送邮件,但每次发送3或4封。我只想发一次信。我怎样才能做到呢 我的cron作业每2分钟检查一次邮件队列表 谢谢大家! 您需要在表中维护一个字段,如sent_status 在提取邮件时,使用sql WHERE子句,如sent_status=0,并在通过sent_status=1向用户发送邮件时,通过电子邮件id

我正在开发一个php脚本,希望在其中向用户发送自动邮件。 我用php脚本成功地实现了一个cron作业,它检查php邮件队列表中的待处理邮件。 脚本工作正常,但cron作业工作异常,它向用户发送邮件,但每次发送3或4封。我只想发一次信。我怎样才能做到呢

我的cron作业每2分钟检查一次邮件队列表


谢谢大家!

您需要在表中维护一个字段,如sent_status

在提取邮件时,使用sql WHERE子句,如sent_status=0,并在通过sent_status=1向用户发送邮件时,通过电子邮件id更新此字段

所以单个用户不能批量接收邮件。

每2分钟一次? 我猜前一个cron任务没有完成,第二个开始,这就是为什么它会向同一个人或帐户发送多封电子邮件


尝试将频率降低到每小时左右添加一些类似于PID文件工作方式的代码:

$path = '/path/to/pid/file';

// Check for PID file's existance, if found exit.
if (file_exists($path))
{
    echo 'PID File Exists';
    exit;
}

file_put_contents($path, '1'); // Create PID file

// Execute your code

unlink($path); // Delete the PID file
几点注意:

如果脚本出现致命错误,那么脚本将永远不会再次运行,理想情况下,您需要检查文件的大小 使用WGET运行cron是错误的,您的脚本仍然会超时,就像您通过浏览器运行它一样。改为使用PHPCLI运行它。
也许你应该发布一些代码:请发布你的crontab行和一些PHP代码的简介。你的表更新正确吗?换句话说,被发送超过1次的邮件是否正确更新为“已发送”状态或类似状态?显示一些代码,或者你真的认为你写的文本足以告诉你你做错了什么吗?@BenFransen是的,我正在检查我的表格,每个挂起邮件只有一个条目。您也可以创建pid文件,以检查脚本是否仍在运行,如果仍在运行,请不要再次运行它