下面的腳本需要約1.5秒,通過橫跨$mail->send()
線定時器測量到發送電子郵件。如果我不使用smtp,它會更快,但是,某些郵件服務器會阻止傳入的電子郵件。發送PHPMailer的SMTP電子郵件花費較長的時間(1.5秒)
什麼是造成延遲?如果對此無能爲力,那麼防止用戶不得不等待它的一個很好的解決方案是什麼?
<?php
require_once ('../../application/classes_3rd/PHPMailer/PHPMailerAutoload.php');
class myPHPMailer extends PHPMailer
{
public function __construct()
{
$this->isSMTP();
$this->SMTPDebug = 0;
$this->Host = 587;
$this->Port = "smtp.gmail.com";
$this->SMTPSecure="tls";
$this->SMTPAuth = true;
$this->Username = "[email protected]";
$this->Password = "my_password";
}
}
try {
$mail = new myPHPMailer(true);
$mail->AddReplyTo('[email protected]');
$mail->SetFrom('[email protected]');
$mail->AddAddress('[email protected]', 'John Doe');
$mail->Subject = "My subject";
$mail->MsgHTML("Hello! Click this link https://www.google.com/");
$time=microtime(1);
$mail->Send();
echo(microtime(1)-$time);
} catch (phpmailerException $e) {
trigger_error($e->errorMessage(), E_USER_ERROR);
}
?>
PHP Mailer不會保留SMTP,它將成爲正常的PHP郵件功能,您可以檢查已發送的郵件,並且可以查看郵件源中的gmail登錄簽名。所以如果你想使用SMTP,那麼不要使用$ mail-> IsMail(); –