【发布时间】:2016-05-22 16:44:40
【问题描述】:
当我尝试使用 JavaMail API 发送邮件时收到此错误:
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted
我该如何解决这个问题?
【问题讨论】:
-
请添加您用于配置邮件管理器以获取答案的代码。
标签: java jakarta-mail
当我尝试使用 JavaMail API 发送邮件时收到此错误:
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted
我该如何解决这个问题?
【问题讨论】:
标签: java jakarta-mail
对我来说,更改为@Heisenberg 推荐的属性“mail.host”。
documentation 说要使用“smtp.gmail.com”,但只适用于我使用“smtp.googlemail.com”。
PS:我的 Allow Less Secure App 配置已经开启
【讨论】:
像这样更改 Google 中的设置:
【讨论】:
我有同样的错误,但是当我从终端运行应用程序时,它就消失了。提供了我的邮箱配置:
spring.mail.host=smtp.googlemail.com
spring.mail.username=weddingcard9999@gmail.com
spring.mail.password=Weddingcard.1
spring.mail.port=587
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.required=true
【讨论】:
它适用于我,您必须按照以下步骤配置您的 Gmail 帐户:
在安全部分:
您需要将“允许不太安全的应用:关闭”更改为“允许不太安全的应用:打开”
【讨论】:
1.允许不太安全的应用程序(应该打开)。
2.检查Gmail用户名和密码..
public static void main(String[] args) {
final String username = "YourMailId";
final String password = "password";
Properties prop = new Properties();
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.starttls.enable", "true"); //TLS
Session session = Session.getInstance(prop,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("Tarunsunny143@gmail.com"));
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("balachandralucky2@gmail.com, to_username_b@yahoo.com")
);
message.setSubject("Testing Gmail TLS");
message.setText("Dear Mail Crawler,"
+ "\n\n Please do not spam my email!");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
【讨论】:
这对我有用:
【讨论】:
登录gmail帐户,在Account ->
点击安全 -> 关闭两步验证并开启“不太安全的应用访问”
可能是因为上面的事情,希望对你有帮助
【讨论】:
按照以下步骤操作:
【讨论】:
mail.smtp.host=smtp.gmail.com,
mail.smtp.port=25,
mail.smtp.auth=true
mail.smtp.starttls.enable=true
现在,确保关闭两步验证
允许不太安全的应用程序 (ON) 点击此链接:-
https://myaccount.google.com/lesssecureapps
【讨论】:
抱歉,派对迟到了。如果您使用的是 Gmail 服务器,这些可能是您任务中的问题。
【讨论】:
Allow Less Secure Apps 只是我的解决方案
"Someone just used your password to try to sign in to your account from a non-Google app. Google blocked them, but you should check what happened. Review your account activity to make sure no one else has access."
您可能收到此错误,因为来自邮件 ID 的用户名和密码不匹配。请重新检查您的密码和邮件 ID(用户名)。可能是笔误。
在某些情况下,Gmail 会阻止通过未经授权的外部应用程序或程序登录。 同时登录您的 gmail 帐户以检查 gmail 是否阻止通过您的 Java Mail API 程序登录您的帐户。
如果不起作用,您可以尝试其他一些 SMTP 服务器(如 yahoo、yandex)。
【讨论】: