两个月前我就遇到了这个问题,现在还在苦苦挣扎。我将 PHPMailer 用于我的邮件列表程序。我有一个在特定时间运行的 cron 作业。但是,电子邮件存在问题。
我在发送给所有邮件列表成员的循环中使用 PHPMailer。代码如下所示:
<?php
require("PHPMailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->SingleTo = true;
$mail->CharSet = "UTF-8";
$mail->Subject = "Our news";
$r_receivers = array("John"=>"john@mail.com","Mary"=>"mary@mail.com","Rob"=>"rob@mail.com");
foreach($r_receivers as $name=>$email){
$mail->SetFrom('no-reply@oursite.com', "Oursite");
$mail->MsgHTML($sendContent);
$mail->AddAddress($email, $name);
$sendContent = "<p>E-mail body</p>";
if($mail->Send())
echo "Sent to: ".$email."<br/>";
else
echo "Not sent to: ".$email.", reason: ".$mail->ErrorInfo."<br/>";
$mail->ClearAddresses();
}?>
当我用 ajax 调用这个代码时,它工作得很好。但是,如果我在浏览器中执行此代码或刷新它或使用 cron 作业调用它,它会向我发送重复项。
有人可以解释为什么我用浏览器/刷新打开它时会出错吗?为什么我通过使用 ajax 调用它并从浏览器调用它得到不同的结果?