Wir versuchen, SMTP mit OAuth2 für Office365 -Postfächer auf unserem Java -Kunden zu arbeiten. Die TLS-Version ist 1.2.URL url = new URL("https://login.microsoftonline.com/" + tenantID + "/oauth2/v2.0/token");
HashMap hm = new HashMap();
hm.put("client_id", appID);
hm.put("scope", "https://outlook.office365.com/.default");
hm.put("grant_type", "client_credentials");
hm.put("client_secret", secret);
< /code>
Für die Jakarta-Mail-Sitzung verwenden wir den folgenden Code: < /p>
Properties prop = new Properties(System.getProperties());
prop.put("mail.debug", "true");
prop.put("mail.smtp.port", "587");
prop.put("mail.smtp.host", "smtp.office365.com");
prop.put("mail.smtp.auth.mechanisms", "XOAUTH2");
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.smtp.starttls.required", "true");
prop.put("mail.smtp.auth", "true");
session = jakarta.mail.Session.getInstance(prop, null);
< /code>
und die Verbindung schlägt fehltr = session.getTransport("smtp");
tr.connect(host, username, password);
< /code>
Hier ist das Protokoll: < /p>
DEBUG: Jakarta Mail version 2.0.1
DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
DEBUG: Tables of loaded providers
DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPTransport=jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], com.sun.mail.imap.IMAPSSLStore=jakarta.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], com.sun.mail.pop3.POP3Store=jakarta.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], com.sun.mail.smtp.SMTPSSLTransport=jakarta.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], com.sun.mail.imap.IMAPStore=jakarta.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], com.sun.mail.pop3.POP3SSLStore=jakarta.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle]}
DEBUG: Providers Listed By Protocol: {imap=jakarta.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle], smtp=jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle], pop3=jakarta.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle], imaps=jakarta.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle], smtps=jakarta.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Oracle], pop3s=jakarta.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Oracle]}
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning jakarta.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.office365.com", port 587, isSSL false
220 SMTP Welcome
DEBUG SMTP: connected to host "smtp.office365.com", port: 587
EHLO xxx.xxx.xxx
250-SIZE 10240000
250-DSN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 OK
DEBUG SMTP: Found extension "DSN", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "OK", arg ""
DEBUG SMTP: STARTTLS required but not supported
jakarta.mail.MessagingException: STARTTLS is required but host does not support STARTTLS
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:744)
at jakarta.mail.Service.connect(Service.java:342)
at jakarta.mail.Service.connect(Service.java:222)
...
< /code>
Im Azure -Portal wurde dem Antrag die Berechtigung SMTP.SendasApp erteilt. Im Portal admin.microsoft.com haben wir die Option für moderne Authentifizierung überprüft.>
Office365 SMTP mit OAuth2, Fehler "Starttls erforderlich, aber nicht unterstützt" ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post