1

mail() で自動メールを送信しようとしています。一部のメールを送信しますが、すべてではなく、約 50% です。テストするために、すべての電子メールに同じ電子メール アドレスを使用していますが、それでも一部しか配信されません。

localhost XAMPP を使用しています。

コードは次のとおりです。

if ($_POST['sendEmail'] == "SEND Email") {

    ob_start();

    $buffer = str_repeat(" ", 4096);
    $buffer. = "\r\n some HTML \r\n";

    set_time_limit(0);
    $noEmails = $last - $first + 1;
    echo "Emails sent (of $noEmails):";
    for ($index = $first; $index <= $last; $index++) {
        $to = $email["$index"];
        $subject = "Hey {$firstName["
        $index "]}!";
        $message = "$emailMessage";
        $headers = 'From: my_account@gmail.com'."\r\n".'Reply-To: my_account@gmail.com'."\r\n".'X-Mailer: PHP/'.phpversion();
        sleep(1);
        mail($to, $subject, $message, $headers);
        echo $buffer.$index;
        ob_flush();
        flush();
    }
    ob_end_flush();
}​

あなたの提案をしてください。

4

1 に答える 1

1

大量の電子メールを送信するには、一度に少量の電子メールのみを送信する 5 分または 10 分後に実行される cron ジョブを設定できます。どのアドレスが電子メールで送信されたかを記録できるように、表に参照を作成します。バルク全体は小さなチャンクに分割され、バックグラウンドで実行されるため、 SMTP サーバーに大きな負荷をかけることはありません。PHP MailerまたはSwiftMailerライブラリを使用する必要があります。

この質問を見て、どの php メーリング ライブラリが最適かを選択できます。

PhpMailer 対 Swiftmailer?

お役に立てれば。

于 2012-04-12T05:41:30.693 に答える