Bad*_*dal 1 php email phpmailer
我正在使用以下phpmailer函数发送1000多封邮件
<?php
function sendMail($sendTo,$Subject,$Body){
require_once 'PHPMailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'smtp.example.com;smtp.example.com';
$mail->SMTPAuth = true;
$mail->Username = 'newsletter@example.com';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->From = 'newsletter@example.com';
$mail->FromName = 'xyz';
$mail->WordWrap = 50;
$mail->isHTML(true);
$mail->addAddress($sendTo);
$mail->Subject = $Subject;
$mail->Body = ( stripslashes( $Body ) );
$mail->AltBody = 'Please Use a Html email Client To view This Message!!';
if(!$mail->send()) {
$return = 'Message could not be sent.';
// echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
$return = 'Message has been sent!';
}
return $return;
}
Run Code Online (Sandbox Code Playgroud)
这是我用来调用函数的代码
foreach ($emails as $email) {
$subject = "sample subject";
$body = "sample body";
sendMail($email, $subject, $body);
}
Run Code Online (Sandbox Code Playgroud)
$ emails数组的大小是1000+是否有更快更好的方法来做到这一点?
Syn*_*hro 10
您应该首先阅读PHPMailer提供的文档,您将在此处找到此示例.
特别要注意的是,请确保使用SMTPKeepAlive- 您可能会发现按域排序列表以最大化连接重用的好处.
正如zerkms所说,您应该提交给本地邮件服务器以获得最佳性能,但令人惊讶的是,PHPMailer中的使用mail或sendmail选项并不总是比SMTP更快到本地主机,主要是因为后缀'sendmail二进制文件打开了与localhost的同步SMTP连接 - postfix'docs出于这个原因,建议将SMTP发送到localhost以获得最佳性能.
如果您要发送到localhost,请不要使用auth或加密,因为开销不会为您带来任何好处,但如果您使用的是远程服务器,请使用端口587上的tls优先于端口465上的过时ssl.
通常,应避免直接向最终用户发送 - PHPMailer中的SMTP客户端有些愚蠢 - 它根本不处理排队,因此任何具有灰名单或交付延迟以进行流量控制的域都将无法交付.最好的方法是使用SMTP到附近的MTA并将队列处理留给它.您也可以从中退回,这样您就可以从列表中删除错误的地址.
| 归档时间: |
|
| 查看次数: |
6205 次 |
| 最近记录: |