我正在尝试使用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();
}
请提出您的建议。
答案 0 :(得分:1)
对于发送批量电子邮件,您可以设置一个cron作业,这可能会在5或10分钟后运行,一次只会发送少量电子邮件。在表中创建一个引用,以便您可以记录已通过电子邮件发送的地址。整个批量将分为小块,因为它将在后台运行,它不会给 SMTP服务器带来巨大负担。您应该使用 PHP Mailer 或 SwiftMailer库。
您可以查看此问题以选择最佳的PHP邮件库:
<强> PhpMailer vs. Swiftmailer? 强>
希望这有帮助。