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

2022-08-30 08:35:52

我已经使用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”,用户名和密码是我的GMail用户名和密码

我使用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服务器向用户发送邮件。


答案 1

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

解决问题的链接(您必须登录谷歌帐户):

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

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

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

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

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

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

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

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

  • 登录我的帐户后,我去了这里
  • 点击继续

希望这有帮助。


答案 2

使用这个:

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

此链接允许访问谷歌帐户

2017年5月19日更新:

您必须从将要发送电子邮件的IP地址访问的这些URL


推荐