#java #email #smtp #smtpclient
#java #Адрес электронной почты #smtp #smtpclient
Вопрос:
Я написал отправитель электронной почты с помощью библиотеки javax.mail. Я не знаю, в чем моя ошибка, потому что в видео, откуда взят код, это сработало.
Видео: https://www.youtube.com/watch?v=bkpHQD9e5hcamp;t=1630s
Я также видел другой вопрос на этом сайте по этой теме, но ни одно из них не помогло решить мою проблему
Код:
public class MailSender {
protected Session mailSession;
public void login(String smtpHost, String smtpPort, String username, String password) {
Properties props = new Properties();
props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.socketFactory.port", smtpPort);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", smtpPort);
Authenticator auth = new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
};
this.mailSession = Session.getDefaultInstance(props, auth);
System.out.println("Eingeloggt.");
}
public void send(String senderMail, String senderName, String receiverAddresses, String subject, String message, String username, String password)
throws MessagingException, IllegalStateException, UnsupportedEncodingException {
if (mailSession == null) {
throw new IllegalStateException("Du musst dich zuerst einloggen (login()-Methode)");
}
MimeMessage msg = new MimeMessage(mailSession);
msg.addHeader("Content-type", "text/HTML; charset=UTF-8");
msg.addHeader("format", "flowed");
msg.addHeader("Content-Transfer-Encoding", "8bit");
msg.setFrom(new InternetAddress(senderMail, senderName));
msg.setReplyTo(InternetAddress.parse(senderMail, false));
msg.setSubject(subject, "UTF-8");
msg.setText(message, "UTF-8");
msg.setSentDate(new Date());
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(receiverAddresses, false));
System.out.println("Versende E-Mail...");
Transport.send(msg, username, password);
System.out.println("E-Mail versendet.");
}
}
Ответ №1:
Это сообщение об ошибке от другого почтового сервера, установленного в вашей локальной системе:
Если требуется «проверка подлинности 530 SMTP», POPcon пытается связаться с вашим сервером Exchange через IP-порт 25 (SMTP), но вместо этого этот другой почтовый сервер отвечает этим конкретным сообщением об ошибке. Вам необходимо либо удалить hMailServer из системы и перезапустить Exchange, либо переместить один из двух серверов на другой локальный IP-порт, поскольку оба не могут сосуществовать на порту 25. Вы можете выбрать IP-порт, к которому POPcon пытается подключиться, на странице конфигурации EXCHANGE в разделе Конфигурация POPcon.
Комментарии:
1. Но это не «требуется проверка подлинности 530 SMTP».