SMTP GMAIL 连接

SMTP GMAIL Connection

我无法使用 PHPMailer 连接到 SMTP GMAIL。

这是错误:

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

这是我的代码:

$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;
}

php代码错误或这是连接问题

您的服务器无法连接到 smtp.gmail.com 端口 587。我在 a testing tool:

遇到了同样的问题
Resolving hostname...
Connecting...
SMTP -> ERROR: Failed to connect to server: Connection timed out (110)
Message sending failed.

在我的本地机器上,它运行完美:

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

可能 Google 来自美国(我在德国)或类似情况的临时问题。您的代码中没有明显的错误。您只能稍后重试或使用其他 SMTP 服务器。

此外,您可以尝试直接连接 74.125.195.108(只需停用 SSL 证书验证)。


编辑:还可以尝试 tls://smtp.gmail.com 作为主持人。

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

// 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