使用PHP邮件发送电子邮件()

时间:2012-04-12 05:26:51

标签: php xampp sendmail

我正在尝试使用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();
}​

请提出您的建议。

1 个答案:

答案 0 :(得分:1)

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

您可以查看此问题以选择最佳的PHP邮件库:

<强> PhpMailer vs. Swiftmailer?

希望这有帮助。