Клиент требует, чтобы программа могла отправлять почту через его почтовый сервер Exchange.
Когда я посмотрел в Интернете несколько примеров, я наткнулся на несколько страниц, которые помогли мне создать небольшой метод дляотправляющая часть
private void sendMailYeah() {
final String username = "user_id";
final String password = "userpassword";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
props.put("mail.smtp.starttls.enable", "false");
props.put("mail.smtp.from", "the mail to be used);
props.put("mail.smtp.user", username);
props.put("mail.smtp.password", password);
props.put("mail.smtp.host", "the server to be used");
props.put("mail.smtp.port", "the port to be used");
props.put("mail.smtp.auth.mechanisms","NTLM");
props.put("mail.smtp.auth.ntlm.domain","domain name");
Session session = Session.getInstance(props,new MyAuthenticator(username,password));
session.setDebug(true);
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("testaddress@testadress.it"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("myaddress@superaddress.com"));
message.setSubject("Test email");
message.setText("TEST EMAIL");
Transport.send(message);
System.out.println("Done");
} catch (MessagingException e) {
e.printStackTrace();
}
}
public static class MyAuthenticator extends Authenticator {
String user;
String pw;
public MyAuthenticator (String username, String password)
{
super();
this.user = username;
this.pw = password;
}
public PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(user, pw);
}
}
Однако, когда программа достигает части «Transport.send (message)», она запускает следующее исключение
10:53:15,273 INFO [stdout] (default task-4) DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
10:53:15,274 INFO [stdout] (default task-4) DEBUG: Tables of loaded providers
10:53:15,274 INFO [stdout] (default task-4) DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle]}
10:53:15,274 INFO [stdout] (default task-4) DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]}
10:53:15,275 INFO [stdout] (default task-4) DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
10:53:15,276 INFO [stdout] (default task-4) DEBUG: setDebug: JavaMail version 1.5.5
10:53:15,302 INFO [stdout] (default task-4) DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
10:53:15,309 INFO [stdout] (default task-4) DEBUG SMTP: need username and password for authentication
10:53:15,309 INFO [stdout] (default task-4) DEBUG SMTP: useEhlo true, useAuth true
10:53:15,309 INFO [stdout] (default task-4) DEBUG SMTP: trying to connect to host "the host", port 25, isSSL false
10:53:15,371 INFO [stdout] (default task-4) 220 SrvExchange.<host> Microsoft ESMTP MAIL Service ready at Thu, 27 Sep 2018 10:49:09 +0200
10:53:15,372 INFO [stdout] (default task-4) DEBUG SMTP: connected to host "host", port: 25
10:53:15,372 INFO [stdout] (default task-4)
10:53:15,376 INFO [stdout] (default task-4) EHLO mylocalmachine
10:53:15,406 INFO [stdout] (default task-4) 250-SrvExchange.<host> Hello [37.159.179.130]
10:53:15,407 INFO [stdout] (default task-4) 250-SIZE 104857600
10:53:15,407 INFO [stdout] (default task-4) 250-DSN
10:53:15,407 INFO [stdout] (default task-4) 250-ENHANCEDSTATUSCODES
10:53:15,407 INFO [stdout] (default task-4) 250-STARTTLS
10:53:15,407 INFO [stdout] (default task-4) 250-X-ANONYMOUSTLS
10:53:15,407 INFO [stdout] (default task-4) 250-AUTH NTLM
10:53:15,407 INFO [stdout] (default task-4) 250-X-EXPS GSSAPI NTLM
10:53:15,407 INFO [stdout] (default task-4) 250-8BITMIME
10:53:15,407 INFO [stdout] (default task-4) 250 XRDST
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "SIZE", arg "104857600"
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "DSN", arg ""
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "STARTTLS", arg ""
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "X-ANONYMOUSTLS", arg ""
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "AUTH", arg "NTLM"
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "X-EXPS", arg "GSSAPI NTLM"
10:53:15,407 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "8BITMIME", arg ""
10:53:15,408 INFO [stdout] (default task-4) DEBUG SMTP: Found extension "XRDST", arg ""
10:53:15,408 INFO [stdout] (default task-4) DEBUG SMTP: Attempt to authenticate using mechanisms: NTLM
10:53:15,408 INFO [stdout] (default task-4) DEBUG SMTP: Using mechanism NTLM
10:53:15,554 INFO [stdout] (default task-4) DEBUG NTLM: type 1 message: 4E 54 4C 4D 53 53 50 00 01 00 00 00 03 B2 00 00 07 00 07 00 29 00 00 00 09 00 09 00 20 00 00 00 4E 53 31 32 44 30 30 31 33 65 64 72 61 73 69 73
10:53:15,554 INFO [stdout] (default task-4) DEBUG SMTP: AUTH NTLM command trace suppressed
10:53:15,601 INFO [stdout] (default task-4) DEBUG NTLM: type 3 message: 4E 54 4C 4D 53 53 50 00 03 00 00 00 18 00 18 00 7C 00 00 00 18 00 18 00 94 00 00 00 0E 00 0E 00 40 00 00 00 1C 00 1C 00 4E 00 00 00 12 00 12 00 6A 00 00 00 00 00 00 00 AC 00 00 00 01 82 00 00 65 00 64 00 72 00 61 00 73 00 69 00 73 00 69 00 6E 00 66 00 6F 00 5F 00 68 00 6F 00 6D 00 65 00 62 00 6F 00 6F 00 6B 00 73 00 4E 00 53 00 31 00 32 00 44 00 30 00 30 00 31 00 33 00 95 C9 A8 F5 5A D0 E5 1F D0 3D C4 FC 3A 6E 66 CF C3 35 0A 4A EB F5 D0 F6 ED 5D 67 79 6D E0 68 DD B6 D0 B3 24 88 96 47 CD 90 28 E1 C2 CE 2B 36 F5
10:53:20,647 INFO [stdout] (default task-4) DEBUG SMTP: AUTH NTLM failed
10:53:20,650 ERROR [stderr] (default task-4) javax.mail.AuthenticationFailedException: 535 5.7.3 Authentication unsuccessful
10:53:20,650 ERROR [stderr] (default task-4)
10:53:20,651 ERROR [stderr] (default task-4) at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:914)
10:53:20,651 ERROR [stderr] (default task-4) at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:825)
10:53:20,651 ERROR [stderr] (default task-4) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:730)
10:53:20,652 ERROR [stderr] (default task-4) at javax.mail.Service.connect(Service.java:388)
10:53:20,652 ERROR [stderr] (default task-4) at javax.mail.Service.connect(Service.java:246)
10:53:20,652 ERROR [stderr] (default task-4) at javax.mail.Service.connect(Service.java:195)
10:53:20,652 ERROR [stderr] (default task-4) at javax.mail.Transport.send0(Transport.java:254)
10:53:20,652 ERROR [stderr] (default task-4) at javax.mail.Transport.send(Transport.java:124)
Где можетэто проблема?Я пытался узнать, есть ли у кого-то аналогичная проблема, но я ничего не смог найти.Я также попытался добавить свойства "mail.smtp.user" и "mail.smtp.password", но это также не помогло