1

当我使用 PHPMailer 库时,我的脚本在 CLI 中运行良好,但是当我使用 cron 运行它时,会发送多封电子邮件。我有一个要发送到的地址列表,然后对于下一个邮件收件人(不包括第一个收件人),它会发送重复邮件。

例子:

我每十分钟向 3 个邮件收件人发送一条消息

第一个收件人收到一次相同的电子邮件。

第二个收件人两次收到相同的电子邮件。

第三个收件人收到相同的电子邮件三次。

第4个食谱。四次……等等……

代码: http:
//pastebin.com/XjtgEN8u

crontab:

0,10,20,30,40,50 * * * * /etc/webmin/cluster-cron/cron.pl 1353486136-28420
4

3 回答 3

3

问题是您没有为您发送的每封电子邮件创建一个新的 PHPMailer 对象。结果是您存储了所有已发送到(在以前的循环中)的电子邮件地址,并在所有后续循环中重新发送给它们。这就是为什么你会得到增量复制。

要解决此问题,请将此行放在您的 while 循环中:

$mail = new PHPMailer(true);

这将为每个电子邮件地址实例化一个新的邮件对象,并将您的电子邮件列表重置为 0,然后再添加新的。

于 2012-11-21T15:59:21.930 回答
2

您还可以使用以下方法在发送到新电子邮件地址之前删除以前的电子邮件地址:

$mail->ClearAllRecipients();

然后添加另一个地址。

于 2013-11-12T06:23:09.370 回答
0

在第 38 行的脚本中,您需要更改adding of recipientsetting the recipient... 在每次迭代中添加新的,而前一个保持设置。

于 2012-11-21T16:00:11.403 回答