SMTP GMAIL Connection

[亡魂溺海] 提交于 2019-11-28 09:41:51

问题


I can't connect to SMTP GMAIL with PHPMailer.

here is error :

Error on Jun 25, 2015 22:54PM - stream_socket_client(): unable to connect to smtp.gmail.com:587 (Connection timed out) in /home/amiroper/public_html/beporsbedoon/app/helpers/phpmailer/smtp.php on line 222

and this is my code :

$this->_mail->isSMTP();
$this->_mail->Host = "smtp.gmail.com";
$this->_mail->SMTPAuth = true;
$this->_mail->Username = "amiroperator@gmail.com";
$this->_mail->Password = "*********";
$this->_mail->SMTPSecure = "tls";
$this->_mail->Port = "587";
$this->_mail->SMTPDebug = 4;
$this->_mail->From = "AmirOperator";
$this->_mail->FromName = 'amiroperator@gmail.com';
$this->_mail->addAddress("amiroperator@outlook.com", "test");
$this->_mail->isHTML(true);
$this->_mail->Subject = 'Registration confirm';
$this->_mail->Body    = 'Thank you for registering to activate your account please click on this link. ".DIR."account/activate/$id/$activasion"';
$this->_mail->AltBody = 'Thank you for registering to activate your account please click on this link. ".DIR."account/activate/$id/$activasion"';

if(!$this->_mail->send()) {
    $data['mailsent'] = false;
} else {
    $data['mailsent'] = true;
}

the php code is wrong or this is connection problem


回答1:


Your server cannot connect to smtp.gmail.com on port 587. I have the same problem from a testing tool:

Resolving hostname...
Connecting...
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Message sending failed.

From my local machine, it works perfectly:

Trying 74.125.195.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP be3sm8900765wib.21 - gsmtp

Maybe there are temporary problems at Google from the US (I am in Germany here) or something like this. There is no obvious mistake in your code. You can only try it again later or with another SMTP server.

Furthermore, you can try to connect with 74.125.195.108 directly (just deactivate SSL certificate validation).


EDIT: Just also try tls://smtp.gmail.com as host.




回答2:


Adjust the authentication protocol and port number in your code:

// Your Current Settings
$mail->SMTPSecure = 'tls';
$mail->Port = 587;

// Updated Settings
$mail->SMTPSecure = 'ssl'; 
$mail->Port = 465;  

I've found that PHPMailer, when set to use Gmail SMTP servers with TLS authentication protocol and port number 587, simply doesn't work. However, I've never had a problem using SSL/465.

Google SMTP Settings

Difference Between TLS and SSL



来源:https://stackoverflow.com/questions/31058038/smtp-gmail-connection

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!