我在使用 Java 应用程序从 Gmail 帐户发送电子邮件时遇到问题。
我编写了简单的 Java 代码来从我的应用程序发送电子邮件。我已打开 MFA,并创建了应用程序密码,并在代码中使用它。当我执行代码时,我收到消息
javax.mail.AuthenticationFailedException:535-5.7.8 用户名和密码不被接受。了解更多信息,请访问 535 5.7.8 https://support.google.com/mail/?p=BadCredentials ft13-20020a17090b0f8d00b0022630ba1c80sm1576429pjb.42 - gsmtp
我相当确定错误消息与代码问题无关(但我知道什么?),并且我已多次仔细检查凭据以确保它们正确。我试图了解还有什么可能是问题。如果有任何建议或需要检查的事情,我将不胜感激。
用户名和密码不被接受
这是当您尝试连接到 Google 的 SMPT 服务器并尝试使用用户实际的 google 密码时的标准错误消息。
截至 2022 年 5 月 30 日,谷歌已删除了不太安全的应用程序选项。无法打开它,因为它不再存在。
你有两个选择
编辑 2024 年 1 月:
从 2024 年 9 月 30 日开始,Google Workspace 将不再支持要求用户共享 Google 用户名和密码的第三方应用或设备的登录方法(“安全性较低的应用访问”选项)。
原答案:
不确定是否是因为我的帐户是 Google Workplace 的一部分,但是 截至 2023 年 11 月,我仍然可以访问 “不太安全的应用访问”选项:
正如图片中的消息所示,Google 最终会自动将其关闭,并且在尝试使用 SMTP 登录时会出现消息“535-5.7.8 用户名和密码不被接受”。 重新启用它的过程非常简单:
登录您的 Google 帐户
with SMTP(SMTP_CONN_STRING) as smtp:
try:
smtp.ehlo()
smtp.starttls()
smtp.ehlo()
smtp.login(SMTP_USERNAME, SMTP_PASSWORD)
except SMTPAuthenticationError as e:
logging.info(str(e))
logging.info(
"⚠️ Google automatically turned off the security option to log in"
" with a username and a password."
)
logging.info(
"⚠️ To enable it again: Log in to the Google account >"
" Manage your Google account > Security > Less secure app access > Turn in on"
)