2

私は 2 か月前からこの問題を抱えており、まだ苦労しています。メーリングリスト プログラムに 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で呼び出すのとブラウザから呼び出すのとで結果が違うのはなぜですか?

4

2 に答える 2

1

これに関連する未解決の問題があるようです: http://code.google.com/a/apache-extras.org/p/phpmailer/issues/detail?id=31。PHPMailer のコピーを最新バージョンにして、再試行することをお勧めします。問題のステータスは「修正済み」ですが、問題チケットのコメントから、問題がまだ存在する可能性があることがわかります。

于 2012-08-29T15:33:45.460 に答える