我为每个循环使用PHP向10,000封电子邮件发送电子邮件。有什么理由说这不是处理10,000封电子邮件的最佳做法吗?这个执行会挂起吗?我想确保这会发送给所有电子邮件。
foreach($thecustomer as $key => $value){
$to = $customeremail;
$fromemail = $shopowner . " <" . $email . ">";
$subject = $subject;
$message = $body;
$headers = "From:" . $email . "\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\n";
mail($to,$subject,$message,$headers);
}
答案 0 :(得分:2)
是的php没有问题,但请注意mail()将创建一个新的邮件服务器连接,发送邮件,并再次关闭连接,这意味着你也将打开&amp;关闭连接10,000次!虽然PEAR::Mail和PEAR::Mail_Queue包将在一个连接中完成所有操作,因此速度更快
引用mail()文档:
注意:
值得注意的是mail()函数不适合循环中的大量电子邮件。此功能为每封电子邮件打开和关闭一个SMTP套接字,效率不高 要发送大量电子邮件,请参阅»PEAR :: Mail和»PEAR :: Mail_Queue包。
还要确保你有足够的执行时间,你可以使用
set_time_limit(0);
“永不超时”