当我使用PHPMailer库时,我的脚本在CLI中运行良好,但是当我使用cron运行它时,会发送多封电子邮件。我有一个要发送的地址列表,然后对于每个下一个邮件收件人,不包括第一个邮件收件人,它会发送重复的邮件。
示例:
我每隔十分钟向3位邮件收件人发送邮件
第一位收件人一次收到同样的电子邮件。
第二位收件人两次收到同样的电子邮件。
第三位收件人三次收到同样的电子邮件。
第四个收件人。四次......等等。
守则:
http://pastebin.com/XjtgEN8u
crontab:
0,10,20,30,40,50 * * * * /etc/webmin/cluster-cron/cron.pl 1353486136-28420
答案 0 :(得分:3)
问题是您没有为您发送的每封电子邮件创建新的PHPMailer对象。结果是,您将存储已发送到的所有电子邮件地址(在之前的循环中),并在所有后续循环中重新发送它们。这就是你获得增量复制的原因。
要解决此问题,请将此行放入while循环中:
$mail = new PHPMailer(true);
这将为每个电子邮件地址实例化一个新邮件对象,并在添加新邮件列表之前将其重置为0.
答案 1 :(得分:2)
您还可以使用以下方式删除之前的电子邮件地址,然后再发送给新的
$mail->ClearAllRecipients();
然后添加另一个地址。
答案 2 :(得分:0)
在第38行的脚本中,您需要在每次迭代中将adding of recipient
更改为setting the recipient
... 添加新版本,同时保留前一个。< / p>