我正在制作一个php邮件程序,它从javascript应用程序xmlhttp请求中获取POST数据。
它与大约50个联系人一起正常工作但我只是在150个测试电子邮件地址上测试它,并且通过脚本中途达到了最大执行时间(因为我在发送每封邮件后放了一个延迟)然后它自动重启了脚本相同的数据,并开始从第一次接触开始发送邮件。
我担心它会无限循环,但在第二次运行中达到最大执行时间后停止了。我在第二次运行期间关闭了javascript应用程序,所以也许这与它停止有关。
我要么增加最大执行时间,要么解析php数据块,但我需要确保这种情况永远不会再发生,因为在现实世界中,我永远不会有两封电子邮件发送到同一个人。
还有其他任何情况,PHP脚本可能会运行两次,是否有一种确定的方法可以确保它永远不会发生?
答案 0 :(得分:1)
如果您从文件中读取邮件,则需要将其从邮件中删除,或者使用已发送邮件制作列表并与源列表进行比较。 此外,最好将数据库与id,target,sent(true / false),datetime等列一起使用,并在邮件成功发送后更新它
答案 1 :(得分:0)
我假设您的电子邮件地址位于某种数据库中,因此答案相当简单。
将另一个常见的DATETIME添加到您的表中,并在每次脚本向该联系人发送电子邮件时更新它。
在您发送电子邮件之前,获取该标记并将其与人类值,先前和当前消息的DATETIME进行比较。如果最后一封邮件是在最近一封邮件发出后发送的,请不要发送。
如果我错误地认为没有数据库......我强烈建议你得到一个数据库。