当前位置: 首页 > 知识库问答 >
问题:

PHPMailer-SMTP错误:从我的服务器发送邮件时密码命令失败

朱岳
2023-03-14

我使用了phpmailer()概念,使用php脚本从共享服务器向用户发送邮件,但根据phpmailer代码,即使脚本中的所有内容都正确,我也无法发送邮件。

我的代码如下:

  $message = " This is testing message from my server";

  $mail = new PHPMailer(); // create a new object
  $mail->IsSMTP(); // enable SMTP
  $mail->Host = "smtp.gmail.com";
  $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
  $mail->SMTPAuth = true; // authentication enabled
  $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for GMail
  $mail->Port = 465; // or 587
  $mail->IsHTML(true);
  $mail->Username = "moorthi.mrk10@gmail.com"; // My gmail username
  $mail->Password = "************"; // My Gmail Password
  $mail->SetFrom("moorthi.mrk10@gmail.com");
  $mail->Subject = "Test Mail from my Server";
  $mail->Body = $message;
  $mail->AddAddress($email);
   if($mail->Send())
      {
    print json_encode("SUCCESS");
}
else
{
    echo "Mailer Error: " . $mail->ErrorInfo;

}

注意:我使用“GMail”作为我的SMTP服务器,SMTPSecure是“ssl”,端口是“465”,用户名是

我使用了VPS共享服务器,并将我的php脚本保存在该服务器上。

我认为我的php脚本没有问题,我不知道为什么它不起作用。

我得到了这样的错误。

  2014-02-21 12:30:11   CLIENT -> SERVER: EHLO jkcorporates.com
  2014-02-21 12:30:11   CLIENT -> SERVER: AUTH LOGIN
  2014-02-21 12:30:11   CLIENT -> SERVER: bW9vcnRoaS5tcmsxMEBnbWFpbC5jb20=
  2014-02-21 12:30:11   CLIENT -> SERVER: OTk0MTI0MTE0MA==
  2014-02-21 12:30:11   SMTP ERROR: Password command failed: 534-5.7.14 
  534-5.7.14 i-_eumA> Please log in via your web browser and then try again.
  534 5.7.14 54 k76sm17979938yho.18 - gsmtp
  2014-02-21 12:30:11   CLIENT -> SERVER: QUIT
  " The ERROR is  "  SMTP connect() failed.

请给出一些解决方案。
提前感谢。

记住:我使用共享服务器名“VPS.mydomain.com”,我想使用GMail作为SMTP服务器向用户发送邮件。

共有3个答案

岳正浩
2023-03-14

正如其他人已经建议的那样,您可以启用“不太安全”的应用程序,或者您可以简单地从ssl切换到tls

$mailer->Host = 'tls://smtp.gmail.com';
$mailer->SMTPAuth = true;
$mailer->Username = "xxx@gmail.com";
$mailer->Password = "***";
$mailer->SMTPSecure = 'tls';
$mailer->Port = 587;

使用tls时,不需要为不太安全的应用程序授予访问权限,只需确保已启用IMAP即可。

贺雪松
2023-03-14

使用以下命令:

https://www.google.com/settings/u/1/security/lesssecureapps
https://accounts.google.com/b/0/DisplayUnlockCaptcha
https://security.google.com/settings/security/activity?hl=en&pli=1

此链接允许访问google帐户

更新日期:2017年5月19日:

这些网址你必须访问从IP地址将被发送电子邮件

濮阳原
2023-03-14

有点晚了,但也许有人会发现它很有用。

修复问题的链接(您必须登录到google帐户):

https://security.google.com/settings/security/activity?hl=en

https://www.google.com/settings/u/1/security/lesssecureapps

https://accounts.google.com/b/0/DisplayUnlockCaptcha

对发生的情况的一些解释:

这个问题可能是由于“不太安全”的应用程序试图使用电子邮件帐户(这是根据谷歌帮助,不确定他们如何判断什么是安全的,什么是不安全的),或者如果您连续多次尝试登录,或者如果您更改了国家/地区,则可能会导致此问题(例如,使用VPN、将代码移动到不同的服务器或实际尝试从世界的不同地区登录)。

为了解决,我不得不:(第一次)

  • 通过web登录到我的帐户
  • 查看最近尝试使用该帐户并接受可疑访问的情况:此链接
  • 禁用阻止可疑应用/技术的功能:此链接

这是第一次奏效,但几个小时后,可能是因为我在做大量测试,问题再次出现,无法使用上述方法解决。此外,我还必须清除验证码(有趣的图片,要求你在登录任何帐户时重写一个单词或一个句子的次数太多):

  • 登录我的帐户后,我来到这里

希望这有帮助。

 类似资料:
  • 我正在尝试从网站向邮件id发送反馈,但收到以下错误: 2017-12-03 12:03:48无法访问文件: /var/tmp/file.tar.gz2017-12-03 12:03:48无法访问文件: /tmp/image.jpg2017-12-03 12:03:48服务器- 这是我的代码:

  • 我正在使用谷歌的邮件服务器发送电子邮件。对于电子邮件发送,我使用PHPMailer。这是我在示例中使用的代码片段。com/contactus站点: 代码向我发送了一封电子邮件(support@example.com)其标题为: 问题是,当我使用不同的地址作为用户名和密码进行身份验证时,消息不会被发送。错误是: 我不知道为什么它与我每天使用的私人gmail帐户一起工作,为什么它不与我拥有的其他gma

  • 当我在本地机器上运行脚本时 客户- 但是当我在主机上运行相同的脚本时 SMTP- 你有办法解决这个问题吗? 提前感谢。

  • 我一直在用代表我的office365帐号发送SMTP邮件,工作了大概一个星期,然后突然不工作了,不知道怎么变了。 当我在PHPMailer中启用high debug logging时,我看到: SMTP- 这篇文章似乎是最相关的: 不接受来自服务器的身份验证:504 5.7.4无法识别的身份验证类型 以下是我交给PHPMailer的文字SMTP设置: 以及实际的PHP代码: 作为理智检查,我在中使

  • 我使用的PHPMailer表格在这里找到。 从网站下载的示例是“接触-3”,在引导主题中使用PHPMailer通过gmail发送SMTP电子邮件。当我使用“接触-1”时,它完全适用于我的托管域电子邮件地址,但SMTP版本适用于gmail地址,联系人表单不会提交。 在下面的代码中,我更改了以下行以添加我的gmail地址和gmail密码: 任何关于使用给定信息进行此工作的帮助都将不胜感激-提前感谢!