You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHPMailer配置SMTP发送邮件遇SMTP Error: Could not authenticate错误求助

解决PHPMailer连接Gmail SMTP时的认证失败问题

问题描述

我正尝试通过main.php文件,根据HTML页面提供的邮箱地址发送邮件,但始终遇到相同错误:SMTP Error: Could not authenticate。我知道这是常见错误,但已查阅大量网站及PHPMailer官方文档,仍未找到有效解决方法。

以下是我的PHP文件代码:

try{
        $mail= new PHPMailer(true);
        $mail->SMTPDebug = SMTP::DEBUG_SERVER;
        $mail->IsSMTP();        
        $mail->SMTPDebug = false;       
        $mail->SMTPAuth = true;     
        $mail->SMTPSecure = 'ssl';  
        $mail->Host = 'smtp.gmail.com';            
        $mail->Port = 465; 
        $mail->Username = 'example1@gmail.com';
        $mail->Password = '4488abcd2266';
        $mail->SetFrom('t25307469@gmail.com');
        $mail->addAddress('example@gmail.com');
        $mail->Subject=("Assunto");
        $mail->msgHTML("Sua mensagem");
        
        if ($mail->send()){         
            $ok = true;
            echo 'it worked';
        }else{          
            $ok = false;
            echo 'didn\'t work';
        }  

实用解决步骤

1. 核对账号基础信息

  • 确认Username对应的Gmail账号拼写无误,密码没有输入错误
  • 若账号开启了两步验证,绝对不能用原密码登录SMTP,必须用应用专用密码

2. 生成应用专用密码(针对两步验证账号)

  • 登录Google账号,进入「安全」设置页
  • 找到「应用专用密码」选项(需先开启两步验证才会显示)
  • 生成一个用于邮件应用的专用密码,替换代码里的Password字段

3. 临时开启低安全应用访问(仅旧账号可用,不推荐长期使用)

  • 若未开启两步验证,可尝试在Google账号安全设置中开启「不太安全的应用访问」(Google已逐步取消该选项,仅部分老账号支持)

4. 修正PHPMailer配置细节

  • 代码里重复设置了SMTPDebug,建议保留SMTP::DEBUG_SERVER,方便查看详细错误日志
  • SetFrom的邮箱尽量和Username保持一致,避免触发Gmail的反垃圾校验
  • 确认服务器支持SSL连接,端口465是Gmail SSL协议的正确端口

5. 排查服务器环境限制

  • 检查服务器是否允许出站连接到465端口,部分主机商会限制SMTP类端口
  • 确认PHP已安装openssl扩展,SSL连接依赖该扩展才能正常工作

内容的提问来源于stack exchange,提问作者joao vitor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:55:04