Recent DiscussionsNewest TopicsMost LikesSolutionsJavaMail connecting to Office 365 XOAUTH2 for IMAP Authentication fails Facing connectivity issue with Office365 online with OAuth2.0 I have set up the application permissions and IMAP and SMTP connection.Basic authentication seems to be work fine. I believe IMAP is enabled. My application is configured as Accounts in any organizational directory (Any Azure AD directory - Multitenant) and uses grant type authorization code. And Delegated Microsoft Graph scopeshttps://graph.microsoft.com/IMAP.AccessAsUser.Allhave been added:Client scopes added Requested Access token with resource ashttps://graph.microsoft.com Successfully received access token with scopes as IMAP.AccessAsUser.All SMTP.Send { "token_type": "Bearer", "scope": "IMAP.AccessAsUser.All SMTP.Send", "expires_in": 3599, "ext_expires_in": 3599, "access_token": "access_token", "refresh_token": "refresh_token", "id_token": "id_token" } So here is the Java Code (JavaMail jar 1.6.2 used) Properties properties= new Properties(); properties.put("mail.imap.ssl.enable", "true"); properties.put("mail.imap.auth.mechanisms", "XOAUTH2"); //properties.put("mail.imap.sasl.enable", "true"); un-commented still results are same properties.put("mail.imap.auth.login.disable", "true"); properties.put("mail.imap.auth.plain.disable", "true"); properties.put("mail.debug", "true"); properties.put("mail.debug.auth", "true"); Session session = Session.getInstance(props); session.setDebug(true); String userEmail = "emailuser@domain.onmicrosoft.com"; String accessToken = "accessToken"; final Store store = session.getStore("imap"); store.connect("outlook.office365.com","993",userEmail, accessToken); Following output : DEBUG: JavaMail version 1.6.2 DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle] DEBUG IMAP: mail.imap.appendbuffersize: -1 DEBUG IMAP: mail.imap.minidletime: 10 DEBUG IMAP: closeFoldersOnStoreFailure DEBUG IMAP: trying to connect to host "outlook.office365.com", port 993, isSSL true * OK The Microsoft Exchange IMAP4 service is ready. [TQBB] A0 CAPABILITY * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+ A0 OK CAPABILITY completed. DEBUG IMAP: AUTH: PLAIN DEBUG IMAP: AUTH: XOAUTH2 DEBUG IMAP: protocolConnect login, host=outlook.office365.com, user=emailuser@domain.onmicrosoft.com, password=<non-null> A1 AUTHENTICATE XOAUTH2 dXNlAQE= A1 NO AUTHENTICATE failed. Could not connect to the message store javax.mail.AuthenticationFailedException: AUTHENTICATE failed. at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:731) at javax.mail.Service.connect(Service.java:366) at myproject.EmailReceiver.downloadEmails(EmailReceiver.java:79) at myproject.EmailReceiver.main(EmailReceiver.java:179) Following other posts could not able to find scopeshttps://outlook.office365.com/IMAP.AccessAsUser.Allhttps://outlook.office365.com/SMTP.Sendin my Azure. May be they are legacy scopes. Is there any other scopes other then "https://graph.microsoft.com/IMAP.AccessAsUser.All" and "https://graph.microsoft.com/SMTP.send" required to connect to Exchange online through IMAP. Or any problem with existing code.
Recent Blog ArticlesMost RecentMost LikesRe: Announcing OAuth 2.0 support for IMAP and SMTP AUTH protocols in Exchange Online The_Exchange_TeamThanks a lot for the blog. I'm using JavaMail to connect with IMAP and SMTP to implement some functionality. I tried the steps from theprovided instructionand add properties men...