简体   繁体   English

服务器对PHPMailer gmail SMTP的响应非常慢

[英]Server responding very slow to PHPMailer gmail SMTP

I am using this example code provided in PHPMailer. 我正在使用PHPMailer中提供的示例代码。 Firstly, the code executes really slow (atleast 1-2 minutes of loading in browser) and then gives me some errors. 首先,代码执行速度非常慢(在浏览器中加载至少1-2分钟),然后给我一些错误。

<?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
date_default_timezone_set('Etc/UTC');

require 'phpmailer/PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer;

//Tell PHPMailer to use SMTP
$mail->isSMTP();

//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages 
// 2 = client and server messages
$mail->SMTPDebug = 2;

//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';

//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587;

//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';

//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "myGmailId@gmail.com";

//Password to use for SMTP authentication
$mail->Password = "myPassword";

//Set who the message is to be sent from
$mail->setFrom('myGmailId@gmail.com', 'Andrew Mathew');

//Set an alternative reply-to address
$mail->addReplyTo('myGmailId@gmail.com', 'Andrew Mathew');

//Set who the message is to be sent to
$mail->addAddress('myOtherId@gmail.com', 'John Doe');

//Set the subject line
$mail->Subject = 'PHPMailer GMail SMTP test';

//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));

//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';

//Attach an image file
//$mail->addAttachment('images/phpmailer_mini.png');

//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!"; 
}
?>

Errors I receive is- 我收到的错误是-

SMTP ERROR: Failed to connect to server: (0) SMTP connect() failed. SMTP错误:无法连接到服务器:(0)SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/故障排除邮件程序错误:SMTP connect()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

I have authorized my gmail account to use google's less secure app. 我已授权我的Gmail帐户使用Google安全性较低的应用。 Is there any other changes I need to make in my server or in php configuration files to make this work? 我需要在服务器或php配置文件中进行任何其他更改才能使此工作正常进行吗?

PS I have not installed anything on my server, I have just downloaded PHPMailer from GitHub and placed it in my working directory. PS:我尚未在服务器上安装任何东西,我刚刚从GitHub下载了PHPMailer,并将其放在了我的工作目录中。

This is not a PHPMailer bug, it's a problem with your server. 这不是PHPMailer错误,而是服务器问题。 If you read the troubleshooting docs linked to in the error message (why it's there) it will give you some suggestions to try to figure out what is wrong with your connectivity. 如果您阅读了错误消息中链接到的疑难解答文档(为什么存在),它将为您提供一些建议,以尝试找出连接的问题所在。 It's likely that either DNS lookups are failing or your network is not letting you out. DNS查找失败或您的网络没有让您离开很可能。

Setting SMTPDebug=3 will provide some lower level debug output relating to the connection. 设置SMTPDebug=3将提供一些与连接有关的较低级别的调试输出。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM