所以我最近一直在使用PHPMailer并调试了我的代码,因为在用户注册时有时需要花一分钟时间发送1个小小的电子邮件。
我用过"到了这里" php microtime调试方法和send()函数使用超过90%的时间发送它,在这个测试中花了44秒,send()函数花了43或44秒,其余加载超快。
这只在服务器上执行此操作,我在localhost上尝试了相同的代码并且它在1-3秒内完成,我还测试了swiftMailer,这在服务器上30秒后出现一次,但是工作正常且快速本地主机。
当他们在服务器上看起来像这些错误,并且在localhost上工作得很好但是我不知道为什么......这里是我正在使用的代码..
<?php
/**
* This example shows settings to use when sending via Google's Gmail servers.
*/
//SMTP needs accurate times, and the PHP time zone MUST be set
//This should be done in your php.ini, but this is how to do it if you don't have access to that
$startTime = microtime(true);
require '../PHPMailerAutoload.php';
echo "<br>Elapsed time is: ". (microtime(true) - $startTime) ." seconds<br>";
$Mail = new PHPMailer();
$Mail->IsSMTP(); // Use SMTP
$Mail->Host = "smtp.gmail.com"; // Sets SMTP server
$Mail->SMTPDebug = 2; // 2 to enable SMTP debug information
$Mail->SMTPAuth = TRUE; // enable SMTP authentication
$Mail->SMTPSecure = "tls"; //Secure conection
$Mail->Port = 587; // set the SMTP port
$Mail->Username = 'myemail@gmail.com'; // SMTP account username
$Mail->Password = '************'; // SMTP account password
$Mail->Subject = 'Test Email Using Gmail';
$Mail->From = 'myemail@gmail.com';
echo "Elapsed time is: ". (microtime(true) - $startTime) ." seconds<br>";
$Mail->AddAddress('friend@outlook.com', 'Someone'); // To:
$Mail->isHTML( TRUE );
$Mail->Body = 'Hello, this is the body of the email.';
$Mail->AltBody = 'ALT';
echo "<br>Elapsed time is: ". (microtime(true) - $startTime) ." seconds<br>";
$Mail->Send();
echo "<br>Elapsed time is: ". (microtime(true) - $startTime) ." seconds<br>";
if ($Mail->IsError() ) {
echo "<font color='red'>ERROR<br></font>";
}
else {
echo "<font color='red'>OK<br /><br /></font>";
}
echo "Elapsed time is: ". (microtime(true) - $startTime) ." seconds<br>";
这是输出......
经过的时间是:0.0010001659393311秒
经过的时间是:0.003000020980835秒
经过的时间是:0.004000186920166秒
2016-04-30 09:34:40服务器 - &gt;客户:220 smtp.gmail.com ESMTP p143sm5831577qke.38 - gsmtp 2016-04-30 09:34:40客户 - &gt;服务器:EHLO zubbo.co.uk 2016-04-30 09:34:40服务器 - &gt;客户:250-smtp.gmail.com为您服务,[2002:9e45:9f98 :: 9e45:9f98] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-CHUNKING 250 SMTPUTF8 2016-04- 30 09:34:40客户 - &gt;服务器:STARTTLS 2016-04-30 09:34:40服务器 - &gt;客户端:220 2.0.0准备启动TLS 2016-04-30 09:34:45客户端 - &gt;服务器:EHLO zubbo.co.uk 2016-04-30 09:34:45服务器 - &gt;客户:250-smtp.gmail.com为您服务,[2002:9e45:9f98 :: 9e45:9f98] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH 250-ENHANCEDSTATUSCODES 250-PIPELINING 250 -CHUNKING 250 SMTPUTF8 2016-04-30 09:34:45客户 - &gt;服务器:AUTH LOGIN 2016-04-30 09:34:46服务器 - &gt;客户:334 VXNlcm5hbWU6 2016-04-30 09:34:46客户 - &gt;服务器:bGlhbWF0enViYm9AZ21haWwuY29t 2016-04-30 09:34:46服务器 - &gt;客户:334 UGFzc3dvcmQ6 2016-04-30 09:34:46客户 - &gt;服务器:ZXZlcnlvbmVLTk9XU3lvdTAxNDc4MjM5NDE1NzM4 2016-04-30 09:34:46服务器 - &gt;客户:235 2.7.0接受2016-04-30 09:34:46客户 - &gt;服务器:邮件来自:2016-04-30 09:34:46服务器 - &gt;客户:250 2.1.0 OK p143sm5831577qke.38 - gsmtp 2016-04-30 09:34:46客户 - &gt;服务器:RCPT TO:2016-04-30 09:34:46服务器 - &gt;客户:250 2.1.5 OK p143sm5831577qke.38 - gsmtp 2016-04-30 09:34:46客户 - &gt;服务器:DATA 2016-04-30 09:34:46服务器 - &gt;客户:354来吧p143sm5831577qke.38 - gsmtp 2016-04-30 09:34:46客户 - &gt;服务器:日期:星期六,2016年4月30日12:34:02 +0300 2016-04-30 09:34:46客户 - &gt;服务器:致:某人2016-04-30 09:34:46客户 - &gt;服务器:来自:Root用户2016-04-30 09:34:46客户端 - &gt;服务器:主题:使用Gmail测试电子邮件2016-04-30 09:34:46客户端 - &gt;服务器:消息ID:&lt; 767077c1ada9c35c3764a13529ddf103@zubbo.co.uk> 2016-04-30 09:34:46客户 - &gt;服务器:X-Mailer:PHPMailer 5.2.14(https://github.com/PHPMailer/PHPMailer)2016-04-30 09:34:46客户端 - &gt; SERVER:MIME-Version:1.0 2016-04-30 09:34:46客户端 - &gt; SERVER:Content-Type:multipart / alternative; 2016-04-30 09:34:46客户 - &gt; SERVER:boundary =&#34; b1_767077c1ada9c35c3764a13529ddf103&#34; 2016-04-30 09:34:46客户 - &gt;服务器:内容传输编码:8位2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt; SERVER:这是MIME格式的多部分消息。 2016-04-30 09:34:46客户 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:--b1_767077c1ada9c35c3764a13529ddf103 2016-04-30 09:34:46客户 - &gt; SERVER:Content-Type:text / plain; charset = us-ascii 2016-04-30 09:34:46客户 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:ALT 2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:--b1_767077c1ada9c35c3764a13529ddf103 2016-04-30 09:34:46客户 - &gt; SERVER:Content-Type:text / html; charset = us-ascii 2016-04-30 09:34:46客户 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:dkjfjdjjs 2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:--b1_767077c1ada9c35c3764a13529ddf103-- 2016-04-30 09:34:46客户 - &gt;服务器:2016-04-30 09:34:46客户端 - &gt;服务器:。 2016-04-30 09:34:47服务器 - &gt;客户:250 2.0.0好1462008908 p143sm5831577qke.38 - gsmtp 2016-04-30 09:34:47客户 - &gt;服务器:退出2016-04-30 09:34:47服务器 - &gt;客户:221 2.0.0关闭连接p143sm5831577qke.38 - gsmtp
经过的时间是:44.978000164032秒
行
经过的时间是:44.978000164032秒
我输出&#34; OK&#34;或&#34;错误&#34;取决于是否发送。在发送40到60秒之后,它确实发送了,我确实收到了电子邮件,它只是发送问题所需的时间。