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

更换Gmail密码后Java邮件读取代码报[AUTHENTICATIONFAILED] Invalid credentials (Failure)问题求助

更换Gmail密码后Java邮件读取代码报[AUTHENTICATIONFAILED] Invalid credentials (Failure)问题求助

兄弟,我之前改完Gmail密码也碰到过一模一样的报错,折腾了好一会儿才弄好,给你几个实用的排查和解决方向,你挨个试:

  • 别再纠结“允许低安全性应用”了,这个功能Google早就砍了
    Google在2022年左右就彻底移除了“允许低安全性应用访问”的选项,所以你现在开这个完全没用,白费劲。正确的做法是给你的Gmail账号开启两步验证(2FA),然后去Google账号的安全设置里生成一个应用专用密码(App Password),把代码里原来的Gmail密码换成这个App Password,这才是现在Gmail允许第三方程序登录的正确方式。

  • 升级你的JavaMail版本
    你用的1.5版本太老了,对Google新的验证机制兼容性很差,建议直接升级到1.6.2或者更高的稳定版本,新版本会适配Gmail的认证要求,能避免很多莫名其妙的兼容性问题。

  • 检查代码里的配置细节
    确认你的IMAP/SMTP配置参数有没有写错,Gmail的标准配置是:

    • IMAP服务器:imap.gmail.com,端口993,必须启用SSL
    • 要开启认证开关,比如mail.imap.auth设为true,mail.imap.ssl.enable设为true

    给你贴个核心配置的示例代码,你对照着改:

    import javax.mail.*;
    import java.util.Properties;
    
    public class GmailReader {
        public static void main(String[] args) {
            String username = "your-gmail-account@gmail.com";
            String appPassword = "你生成的应用专用密码";
    
            Properties props = new Properties();
            props.put("mail.imap.host", "imap.gmail.com");
            props.put("mail.imap.port", "993");
            props.put("mail.imap.ssl.enable", "true");
            props.put("mail.imap.auth", "true");
    
            Session session = Session.getInstance(props, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, appPassword);
                }
            });
    
            // 后续的邮件读取逻辑...
        }
    }
    
  • 检查Google账号的安全提醒
    如果上面的方法都试过还不行,去你的Gmail账号对应的Google安全中心,看看有没有“最近的不安全登录尝试”的提醒,Google可能会把你的Java程序的登录判定为可疑操作,需要你手动点击“允许”这个登录请求,之后程序就能正常访问了。

备注:内容来源于stack exchange,提问作者ericire

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 16:13:15