1

PHPMailer ライブラリを使用すると、スクリプトは CLI から正常に実行されますが、cron を使用して実行すると、複数の電子メールが送信されます。送信先のアドレスのリストがあり、最初のメール受信者を除く次のメール受信者ごとに重複を送信します。

例:

10 分ごとに 3 人のメール受信者にメッセージを送信します

最初の受信者は同じメールを 1 回受信しました。

2 番目の受信者が同じメールを 2 回受信しました。

3 番目の受信者は同じメールを 3 回受け取りました。

レシピ第4弾。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 に答える
0

スクリプトの 38 行目で、新しいものを追加するたびに ... を変更する必要がありますが、前のものは設定されままadding of recipientです。setting the recipient

于 2012-11-21T16:00:11.403 に答える