SMTP 连接失败 - 本地主机上的 PHPMailer 错误


SMTP connect failed - PHPMailer Error on Localhost

我使用的是PHPMailer最新版本,我能够使用它发送电子邮件。但是现在我不知道发生了什么?现在我无法使用它发送邮件。它给了我以下错误 -

Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

我还检查了openssl扩展。

这是我的代码 -

<form method="post" action="mail.php">
  <input type="text" placeholder="Enter your email to subscribe" name="emailid" />
  <input type="submit" value="Submit" />
</form>

mail.php文件的内容

<?php
$emailSubscr = $_POST['emailid'];
$sub = 'New Subscriber';
$message = $emailSubscr.' has subscribed for newsletter';
require 'phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3;
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';     // SMTP Host Name
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'myusername@gmail.com';                 // SMTP username
$mail->Password = 'mypassword';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587;                                    // TCP port to connect to
$mail->From = $emailSubscr;
$mail->FromName = 'Subscriber';
$mail->addAddress('me@example.com', 'Rohit Kumar');     // Add a recipient
$mail->addReplyTo($emailSubscr, 'Subscriber');
$mail->Subject = $sub;
$mail->Body    = $message;
if(!$mail->send()) {
    echo 'Some error occured, please try again later.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Thanks for subscribing our newsletter on your email id.';
}
?>

谢谢 Faiz Rasool。我的问题已解决。

你能这样做吗$mail->SMTPDebug = 3;并发布日志   – Faiz Rasool

实际上,我使用移动宽带,其IP大部分时间都在变化。昨天,当我尝试使用我的应用程序访问它时,谷歌可能已经检测到我是可疑登录.
当我登录到我的gmail帐户时,我看到了更改密码的通知,因此我的应用程序无法登录到我的帐户.
你帮助了我。当我检查调试日志时,有一条来自谷歌的消息说通过网络浏览器登录。我这样做了,重置了密码,选择了可疑登录尝试作为ME,我的问题就解决了。但这里最主要的是,在设置了谷歌的选项 - 允许安全性较低的应用程序打开后,谷歌有时仍然阻止我的应用程序。我认为这背后的原因(我认为)是当我断开并重新连接移动宽带时,我的 ip 会发生变化。因此,我的位置发生了变化。顺便说一下,我不再为我的应用程序使用 GMail 帐户。