下面是我的函数
function send_edm ($u_email_sender_name, $u_content, $u_mail, $u_subject, $edm_id) {
foreach ($edm_email as $value) {
$this->rege = Route :: loadClass('core_route_regclass');
$this->sendmail = $this->rege->phpmailer();
$this->sendmail->Mailer = "mail";
$this->sendmail->IsHTML(true);
$email_sender = $u_email_sender_name;
$mail = $config->company_email;
$subject = $u_subject;
$fromwhere = $email_sender;
$content = $u_content;
$this->sendmail->From = $fromwhere;
$this->sendmail->FromName = $fromwhere;
$this->sendmail->AddAddress($value["email"]);
$this->sendmail->Subject = $u_subject;
$this->sendmail->CharSet = "utf-8";
$this->sendmail->Encoding = "base64";
$this->sendmail->Body = $u_content;
$this->sendmail->AltBody = "This is the body in plain text for non-HTML mail clients";
if(!$this->sendmail->Send())
{
echo "Message could not be sent. <p>";
}
}
}如果我使用此功能发送超过1000封电子邮件,是否会出现任何可能导致发送过程中断的错误?如何提高使用php发送电子邮件的可靠性?
谢谢
发布于 2011-04-15 11:07:51
对于大量邮件的发送,最好使用PEAR::Mail_Queue包。
这个包提供了处理邮件队列管理的类。它可以在后台加载、保存和发送保存的邮件,也可以备份一些邮件。
发布于 2011-04-15 11:16:44
THe对这个问题的回答取决于很多与你的代码无关的事情。例如,你的主机是否限制了你在给定时间段内可以发送的电子邮件数量?你是否提前验证了所有的输入?我们说的是多少mpre超过1000?1000次迭代循环比1m迭代循环稳定得多。服务器是否有足够的CPU周期带宽来完成完整的迭代?
您可能需要考虑使用工作队列来处理独立于网站本身的大型处理作业。
https://stackoverflow.com/questions/5671905
复制相似问题