【问题标题】:PHPMailer: SMTP connect() failedPHPMailer:SMTP 连接()失败
【发布时间】:2015-02-04 19:48:44
【问题描述】:

当我向它发送请求时,请求超时。此代码已在同一目录中的另一个脚本上工作。我刚刚通过浏览器登录到 gmail 以确保一切正常。 $mail->ErrorInfo 的记录值为:SMTP connect() failed.

知道为什么这可能会在 11 月起作用,但现在当我将其复制到另一个脚本时会引发错误?

$mail = new PHPMailer();
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->CharSet = 'UTF-8';
$mail->Debugoutput = 'html';
$mail->Host = "smtp.gmail.com";
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->SMTPSecure = "tls";  
$mail->Username = "xxxxxx@gmail.com";
$mail->Password = "xxxxxxxxxx";
$mail->setFrom('xxxxxxxxxxx@gmail.com', 'xxxxxxxx');
$mail->addReplyTo('xxxxx@gmail.com', 'xxxxxx');
$mail->addAddress($email, $name);
$mail->Subject = 'Your License Information';
$mail->Body = $message;

我尝试了另一个 gmail 帐户,并尝试使用 Gmail 为您提供的应用密码。

【问题讨论】:

  • 你应该使用调试选项,你是使用你的gmail帐户密码还是应用程序密码?
  • 糟糕,刚刚看到$mail->ErrorInfo 位,创建应用密码并使用security.google.com/settings/security/apppasswords
  • 太棒了,谢谢。我试过了,但这是页面上唯一的应用程序:i.imgur.com/S1IoI8Y.png
  • 只需访问上面的链接,创建一个邮件应用密码,然后使用该密码代替您的标准密码。它不是一个许可的东西,它是一个设置并忘记密码
  • 您可能遇到了thisthe docs on this subject 对此进行了介绍。

标签: php email smtp gmail phpmailer


【解决方案1】:

因为我之前在同一个目录中使用类似的代码工作过,所以我知道它一定很奇怪。我尝试了ping google.com,但没有成功,让我开始考虑出站流量。然后我做了ping 24.156.131.93,这是谷歌的IP(删除了域解析器)并且有效,所以我将resolv.conf中的名称服务器更改为谷歌的8.8.8.8,现在它可以工作了。所以基本上,我的主机在他们提供的名称服务器方面存在一些问题,而且错误不仅仅是 SMTP,而是传出流量是一个整体。

【讨论】:

    猜你喜欢
    • 2016-02-21
    • 2013-12-31
    • 2011-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-07-14
    • 2018-12-19
    • 2017-06-06
    • 2016-02-13
    相关资源
    最近更新 更多