JavaMail APIを使用してメールを送信しようとすると、このエラーが発生します。
javax.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted
どうすれば修正できますか?
アカウントでGmailアカウントにログオンします->
[セキュリティ]をクリックし、2段階認証プロセスをオフにして、[安全性の低いアプリへのアクセス]をオンにします
上記のことが原因である可能性があります。
安全性の低いアプリを許可する(オンにする必要があります)。
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("[email protected]"));
message.setRecipients(
Message.RecipientType.TO,
InternetAddress.parse("[email protected], [email protected]")
);
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();
}
}
}
手順に従ってください:
送信元メールIDのユーザー名とパスワードが一致しないため、このエラーが発生した可能性があります。パスワードとメールID(ユーザー名)を再確認してください。タイプミスかもしれません。
場合によっては、Gmailは、許可されていない外部アプリケーションまたはプログラムを介したログインを禁止します。また、GmailがJava Mail APIプログラムを介してアカウントにログインすることを妨げているかどうかを確認するために、Gmailアカウントにログインします。
何もうまくいかない場合は、他のSMTPサーバー(yahoo、yandexなど)を試すことができます。