Я пытаюсь отправить электронное письмо на Java, но получаю эту ошибку:
org.apache.geronimo.javamail.transport.smtp.SMTPSendFailedException:
SMTP; Клиент не прошел аутентификацию для отправки анонимной почты во время ПОЧТЫ ОТ
вот мой код:
public static void sendHtmlEmail(String subject, String messages){
try{
String HOST = ...;
final String USER = ...;
final String PASSWORD = ...;
String PORT = "587";
String TO = ...;
String SUBJECT = "Test Mail";
String TEXT = "This is a test message from my java application. Just ignore it";
Properties props = System.getProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.localhost", HOST);
props.put("mail.smtp.port", PORT);
props.put("mail.smtp.auth",true);
props.put("mail.smtp.starttls.enable", true);
Authenticator auth = new Authenticator()
{
@Override
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(USER, PASSWORD);
}
};
Session session = Session.getInstance(props,auth);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(USER));
message.addRecipient(RecipientType.TO, new InternetAddress(TO));
message.setSentDate(new Date());
message.setSubject(SUBJECT);
message.setText(TEXT);
message.saveChanges();
Transport transport = session.getTransport("smtp");
transport.connect(HOST, USER, PASSWORD);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
catch(Exception e){
e.printStackTrace();
}
}
Я пробовал другие решения, которые нашел, но почему-то все только ухудшает ситуацию. У меня такое ощущение, что что-то не так с аутентификацией или это игнорируется, потому что я могу использовать все как пароль и имя пользователя без получения ошибки типа «неправильный пароль / имя пользователя».
Может кто-нибудь помочь мне, пожалуйста?