Michał Tulej
Michał Tulej

Reputation: 1

IMAP connection to outlook C# OAUTH@

Any reason why i cannot connect to imap server outlook? Im using MailKit Lib

log:

Connected to imaps://outlook.office365.com:993/
S: * OK The Microsoft Exchange IMAP4 service is ready. [QgBFADEAUAAyADgAMQBDAEEAMAAxADEAMgAuAEQARQBVAFAAMgA4ADEALgBQAFIATwBEAC4ATwBVAFQATABPAE8ASwAuAEMATwBNAA==]
C: A00000000 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
S: A00000000 OK CAPABILITY completed.
C: A00000001 AUTHENTICATE XOAUTH2 ********
S: A00000001 OK AUTHENTICATE completed.
C: A00000002 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CLIENTACCESSRULES CLIENTNETWORKPRESENCELOCATION BACKENDAUTHENTICATE CHILDREN IDLE NAMESPACE LITERAL+
S: A00000002 OK CAPABILITY completed.
C: A00000003 NAMESPACE
S: A00000003 BAD User is authenticated but not connected.

here is token decoded token:

{  "aud": "https://outlook.office365.com",
  "iss": "https://sts.windows.net/b31248b9-b6a2-4977-98dd-3acb1524975b/",
  "iat": 1727428055,
  "nbf": 1727428055,
  "exp": 1727431955,
  "aio": "hidden",
  "app_displayname": "EmailScannerSingleTenant",
  "appid": "hidden",
  "appidacr": "1",
  "idp": "hidden",
  "idtyp": "app",
  "oid": "hidden",
  "rh": "hidden",
  "roles": [
    "User.Read.All",
    "full_access_as_app",
    "Mail.ReadWrite",
    "POP.AccessAsApp",
    "User.ReadBasic.All",
    "Mail.Read",
    "IMAP.AccessAsApp",
    "SMTP.SendAsApp",
    "Exchange.ManageAsApp"
  ],
  "sid": "hidden",
  "sub": "hidden",
  "tid": "hidden",
  "uti": "hidden",
  "ver": "1.0",
  "wids": [
    "hidden"
  ],
  "xms_idrel": "7 8"
}

im connecting like this:

else if (settings.Protocol.Equals("IMAP"))
            {
                try
                {
                    var protocolLogger = new ProtocolLogger("imap-log.txt");
                    using (var client = new ImapClient(protocolLogger))
                    {
                        await client.ConnectAsync("outlook.office365.com", 993, SecureSocketOptions.SslOnConnect);
                                                //mail look like this  [email protected]
                        await client.AuthenticateAsync(new SaslMechanismOAuth2(settings.ClientLogin, result.AccessToken));


                        var a = client.Inbox.Open(FolderAccess.ReadWrite);
                        await client.DisconnectAsync(true);
                    }

                }
                catch (Exception ex)
                {

                }
            }

with scope "https://outlook.office365.com/.default" or "https://ps.outlook.com/.default" , both not works. Any ideas why i cannot acces to imap?

I have all of priviliges privilligesPicture

update, i once time connect to imap, after this still, bad user authenticated but not connected :

Connected to imaps://outlook.office365.com:993/
S: * OK The Microsoft Exchange IMAP4 service is ready. [RgBSADIAUAAyADgAMQBDAEEAMAAxADEAMgAuAEQARQBVAFAAMgA4ADEALgBQAFIATwBEAC4ATwBVAFQATABPAE8ASwAuAEMATwBNAA==]
C: A00000000 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL+
S: A00000000 OK CAPABILITY completed.
C: A00000001 AUTHENTICATE XOAUTH2 ********
S: A00000001 OK AUTHENTICATE completed.
C: A00000002 CAPABILITY
S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CLIENTACCESSRULES CLIENTNETWORKPRESENCELOCATION BACKENDAUTHENTICATE CHILDREN IDLE NAMESPACE LITERAL+
S: A00000002 OK CAPABILITY completed.
C: A00000003 NAMESPACE
S: * NAMESPACE (("" "/")) NIL NIL
S: A00000003 OK NAMESPACE completed.
C: A00000004 LIST "" "INBOX"
S: * LIST (\Marked \HasNoChildren) "/" INBOX
S: A00000004 OK LIST completed.
C: A00000005 SELECT INBOX
S: * 1 EXISTS
S: * 1 RECENT
S: * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)
S: * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags
S: * OK [UNSEEN 1] Is the first unseen message
S: * OK [UIDVALIDITY 14] UIDVALIDITY value
S: * OK [UIDNEXT 16] The next unique identifier value
S: A00000005 OK [READ-WRITE] SELECT completed.
C: A00000006 LOGOUT
S: * BYE Microsoft Exchange Server IMAP4 server signing off.
S: A00000006 OK LOGOUT completed.

Upvotes: 0

Views: 122

Answers (1)

jstedfast
jstedfast

Reputation: 38528

S: A00000003 BAD User is authenticated but not connected.

This means that authentication worked, but you haven't gone into your account settings and enabled IMAP access.

Upvotes: 0

Related Questions