【问题标题】:Can't access my gmail smtp client with an app password in php无法使用 php 中的应用程序密码访问我的 gmail smtp 客户端
【发布时间】:2023-01-13 22:44:41
【问题描述】:

所以,我使用 phpMailer 通过 gmail smtp 发送邮件,这是我的代码

use PHPMailer\PHPMailer\PHPMailer;
require 'vendor\autoload.php';
define('GMailUSER', 'gigabattleboard@gmail.com');
define('GMailPWD', '****************');
function smtpMailer($to, $from, $from_name, $subject, $body) {
  $mail = new PHPMailer();
  $mail->IsSMTP();
  $mail->SMTPDebug = 1;
  $mail->SMTPAuth = true;
  $mail->SMTPSecure = 'ssl';
  $mail->SMTPOptions = array(
    'ssl' => array(
    'verify_peer' => false,
    'verify_peer_name' => false,
    'allow_self_signed' => true
    )
  );
  $mail->Host = 'smtp.gmail.com';
  $mail->Port = 465;
  $mail->Username = GMailUser;
  $mail->Password = GMailPWD;
  $mail->SetFrom($from, $from_name);
  $mail->Subject = $subject;
  $mail->Body = $body;
  $mail->AddAddress($to);
  if(!$mail->Send()) {
    return 'Mail error: '.$mail->ErrorInfo;
  } else {
    return true;
  }
}

$result = smtpmailer('fainfutia@mail.com', 'gigabattleboard@mail.com', 'Giga Battleboard', 'Message', 'Subject');
  if (true !== $result)
{
  echo $result;
}

在激活双因素验证后,我在我使用的谷歌帐户上创建了一个应用程序密码。但我仍然得到同样的错误:

2023-01-13 14:21:05 SMTP 错误:密码命令失败:535-5.7.8 用户名和密码未被接受。在 535 5.7.8 https://support.google.com/mail/?p=BadCredentials s23-20020a1cf217000000b003d1e3b1624dsm29449744wmc.2 - gsmtp 了解更多 SMTP 错误:无法验证。

不幸的是,错误给出的链接并没有给我带来任何结论。 我该如何摆脱这个?

【问题讨论】:

    标签: php smtp gmail phpmailer


    【解决方案1】:

    需要在您的代码中使用应用程序密码来代替您的实际谷歌密码。如果您仍然看到 Username and Password not accepted。那么您还没有在代码中使用应用程序密码。

    $mail->Username = GMailUser;
    $mail->Password = AppsPassWord;
    

    如果这不起作用,让我知道我应该有一个 PHP 示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 2021-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-08
      相关资源
      最近更新 更多