| Author |  | 
      
        | mnoreen Newbie
 
  
 
 Joined: 17 July 2012
 Location: United States
 Online Status: Offline
 Posts: 19
 | 
          https://developer.microsoft.com/en-us/office/blogs/end-of-support-for-basic-authentication-access-to-exchange-online-apis-for-office-365-customers/
           | Posted: 23 September 2019 at 8:52am | IP Logged |   |  
           | 
 |  
 We use the Mailbee IMAP library extensively to read various service based email accounts in o365.  Any guidance on how to address this would be greatly appreciated.
 
 Note, we have many console apps written in .NET (4.8) that run on a server on many scheduled tasks.  I understand we'd need to somehow register our "application" (I'm assuming that can be a generic one for our company), but we cannot involve any "user" interaction.  These are utility apps.  Glancing at the existing sample code in the Mailbee doc, they all seem to involve popping up a browser window to get someone to interact with "asking permission."  And that's what we need to avoid.
 
 We've used Mailbee all this time to mask the complexities of IMAP, I hope the library is able to help us with this new, forced direction.
 
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          I don't think it's possible to avoid user interaction with OAuth 2.0. This is exactly what it's about - user interaction (because passwords can be stolen, etc).
           | Posted: 23 September 2019 at 9:04am | IP Logged |   |  
           | 
 |  
 I'd try to check if what you're trying to achieve using service accounts. This is certainly doable with Google apps (and there is a tutorial in MailBee on this) but not sure if Microsoft service accounts can do the same. But it at least is worth trying.
 
 Regards,
 Alex
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | mnoreen Newbie
 
  
 
 Joined: 17 July 2012
 Location: United States
 Online Status: Offline
 Posts: 19
 | 
          Thanks Alex.
           | Posted: 24 September 2019 at 6:51am | IP Logged |   |  
           | 
 |  
 FWIW, I've started reviewing the new Microsoft Graph API which is a REST based API for accessing all things o365.  In the doc, it does mention "Client credentials grant flow" as part of the oAuth spec
 
 see:  https://developer.microsoft.com/en-us/graph/blogs/30daysmsgraph-day-12-authentication-and-authorization-scenarios/
 
 and
 
 https://tools.ietf.org/html/rfc6749#section-4.4
 
 so it looks like that may be a path... albeit a much more complicated one than just using a username and password along with the IMAP component!  Maybe it will make more sense to you and you'll have some way to incorporate that into the library over the next year :)
 
 Thanks again.
 
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          Thanks. I see they are using certificate-based auth process - indeed, service accounts.
           | Posted: 24 September 2019 at 7:15am | IP Logged |   |  
           | 
 |  
 Regards,
 Alex
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | mackolo22 Groupie
 
  
  
 Joined: 09 October 2018
 Location: Poland
 Online Status: Offline
 Posts: 41
 | 
          Hi,
           | Posted: 05 March 2020 at 2:12am | IP Logged |   |  
           | 
 |  I would like to know if MailBee supports or will support OAuth2 authentication for Office 365 accounts? I know that it works great for Gmail. Will given code work fine as well as all IMAP/POP3/SMTP operations?
 
 string xOAuthKey = OAuth2.GetXOAuthKeyStatic(email, accessToken);
 imapClient.Login(null, xOAuthKey, AuthenticationMethods.SaslOAuth2);
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          Hi,
           | Posted: 05 March 2020 at 2:31am | IP Logged |   |  
           | 
 |  
 MailBee will support it when MS starts supporting it. Currently, it's not supported. Stay tuned to this discussion:
 
 https://stackoverflow.com/questions/29747477/imap-auth-in-office-365-using-oauth2
 
 Regards,
 Alex
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | mackolo22 Groupie
 
  
  
 Joined: 09 October 2018
 Location: Poland
 Online Status: Offline
 Posts: 41
 | 
          Hi Alex,
           | Posted: 05 March 2020 at 2:35am | IP Logged |   |  
           | 
 |  
 Thanks for the link. I hope they will implement this ASAP. :D
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Jan vV Newbie
 
  
 
 Joined: 27 March 2020
 Online Status: Offline
 Posts: 1
 | 
          It looks like that StackOverflow post is the only place where someone states that Microsoft is working on an OAuth implemenation for IMAP. For the rest, deafening silence...
           | Posted: 06 April 2020 at 10:43am | IP Logged |   |  
           | 
 |  
 Obviously Microsoft is forcing everyone to use Graph instead of the standard protocols (they mention them as 'legacy'instead of 'standard').
 I don't mind if I have to add OAuth in my applications where I access mailboxes. But I cannot believe that we all have to migrate everything to use Graph. And it looks like we all are going to develop our own implementation. Why can't I find a standard library that handles mail through Graph?
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          Probably the closest you can get is this? Never used, though. It's just what Google finds.
           | Posted: 07 April 2020 at 1:25am | IP Logged |   |  
           | 
 |  
 https://github.com/microsoftgraph/msgraph-sdk-dotnet
 
 Regards,
 Alex
 
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | abhroneelc Newbie
 
  
 
 Joined: 28 October 2020
 Location: Australia
 Online Status: Offline
 Posts: 2
 | 
          Hi Guys ,
           | Posted: 28 October 2020 at 4:42pm | IP Logged |   |  
           | 
 |  
 Is there any update on this one yet , we also have a very similar situation we have scheduled tasks that scan and download specific types of emails from mailboxes using IMAP on office 365.
 
 We have tried the App reg and getting the bearer token using the no user workflow as shown here
 https://docs.microsoft.com/en-us/graph/auth-v2-service
 , we seem to be getting the token fine but the imap login gets errored out.
 
 MailBee.ImapMail.MailBeeImapLoginBadCredentialsException: 'The server has rejected authentication data sent by the client. The server responded: MBN00000002 NO AUTHENTICATE failed.'
 
 
 
 var  ApiUrl  = "https://graph.microsoft.com/";
 var scopes = new string[] { $"{ApiUrl}.default" };
 
 IConfidentialClientApplication app;
 
 app = ConfidentialClientApplicationBuilder.Create(clientID)
 .WithClientSecret(clientSecret)
 .WithAuthority(authoriseEndpoint)
 .Build();
 var result =  app.AcquireTokenForClient(scopes)
 .ExecuteAsync().Result;
 return result;
 
 string imapXOAuthKey = OAuth2.GetXOAuthKeyStatic(userEmail, result.AccessToken);
 
 Imap imp = new Imap("xxxxxxxxxxx-key");
 
 // Logging is not necessary but useful for debugging.
 imp.Log.Filename = "C:\\Temp\\log.txt";
 imp.Log.HidePasswords = false;
 imp.Log.Enabled = true;
 imp.Log.Clear();
 
 
 imp.Connect("imap-mail.outlook.com", 993);
 imp.Login(null, imapXOAuthKey, AuthenticationMethods.SaslOAuth2, AuthenticationOptions.None, null);
 imp.SelectFolder("Inbox");
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          Hi,
           | Posted: 29 October 2020 at 3:30am | IP Logged |   |  
           | 
 |  
 Office 365 allows the auth flow without user interaction for Graph only. It's not possible with IMAP.
 
 Regards,
 Alex
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | abhroneelc Newbie
 
  
 
 Joined: 28 October 2020
 Location: Australia
 Online Status: Offline
 Posts: 2
 | 
          Hi Alex ,
           | Posted: 29 October 2020 at 4:41pm | IP Logged |   |  
           | 
 |  Dows Mailbee Have a library with Graph at the moment ? Is there any plans to have something new in this area ?
 
 thanks
 Abhroneel
 | 
       
        | Back to Top |     | 
       
       
        |  | 
        | Alex AfterLogic Support
 
  
  
 Joined: 19 November 2003
 Online Status: Offline
 Posts: 2207
 | 
          Hi Abhroneel,
           | Posted: 30 October 2020 at 1:15am | IP Logged |   |  
           | 
 |  
 As MS already provides a powerful Graph lib, we don't think much sense in making our own.
 
 You can also interoperate Graph lib and MailBee (e.g. download email with Graph, feed it to MailBee and examine message properties using MailBee's API).
 
 For instance, https://docs.microsoft.com/en-us/graph/api/message-get?view=graph-rest-1.0&tabs=csharp
 
 Example 4 shows how to get the MIME source.
 
 You can then use MailMessage.LoadMessage to load the email from the MIME source. I think this should work.
 
 Regards,
 Alex
 | 
       
        | Back to Top |     | 
       
       
        |  |