«Требуется проверка подлинности 530» SMTP, и я не знаю, почему

#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».