1

我正在尝试使用 mail() 发送自动电子邮件。它发送一些电子邮件,但不是全部,大约 50%。为了测试,我对所有电子邮件使用相同的电子邮件地址,但仍然只有一些被送达。

我正在使用本地主机 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

对于发送批量电子邮件,您可以设置一个 cron 作业,该作业可能在 5 或 10 分钟后运行,一次仅发送少量电子邮件。在表中创建一个参考,以便您可以记录哪些地址已通过电子邮件发送。整个批量将被分成小块,因为它将在后台运行,它不会给您的SMTP 服务器带来巨大的负载。您应该使用PHP MailerSwiftMailer

你可以看看这个问题来选择最好的 php 邮件库:

PhpMailer 与 Swiftmailer?

希望这可以帮助。

于 2012-04-12T05:41:30.693 回答