SMTP GMAIL Connection

时间:2015-06-25 18:28:25

标签: php smtp phpmailer

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

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:1)

调整代码中的身份验证协议和端口号:

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

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

我发现PHPMailer设置为使用带有TLS身份验证协议和端口号587的Gmail SMTP服务器时,根本不起作用。但是,我从来没有遇到过使用SSL / 465的问题。

Google SMTP Settings

Difference Between TLS and SSL