![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Office365 IMAP List MailboxesSee more Office365 ExamplesList the Office365 IMAP mailboxes.Note: This example requires Chilkat v11.0.0 or greater.
#include <C_CkJsonObjectW.h> #include <C_CkImapW.h> #include <C_CkMailboxesW.h> void ChilkatSample(void) { BOOL success; HCkJsonObjectW jsonToken; HCkImapW imap; const wchar_t *refName; const wchar_t *wildcardedMailbox; BOOL subscribed; HCkMailboxesW mboxes; int i; success = FALSE; // An Office365 OAuth2 access token must first be obtained prior // to running this code. // Getting the OAuth2 access token for the 1st time requires the O365 account owner's // interactive authorizaition via a web browser. Afterwards, the access token // can be repeatedly refreshed automatically. // See the following examples for getting and refreshing an OAuth2 access token // Get Office365 SMTP/IMAP/POP3 OAuth2 Access Token // Refresh Office365 SMTP/IMAP/POP3 OAuth2 Access Token // First get our previously obtained OAuth2 access token. jsonToken = CkJsonObjectW_Create(); success = CkJsonObjectW_LoadFile(jsonToken,L"qa_data/tokens/office365.json"); if (success == FALSE) { wprintf(L"Failed to open the office365 OAuth JSON file.\n"); CkJsonObjectW_Dispose(jsonToken); return; } imap = CkImapW_Create(); CkImapW_putSsl(imap,TRUE); CkImapW_putPort(imap,993); // Connect to the Office365 IMAP server. success = CkImapW_Connect(imap,L"outlook.office365.com"); if (success == FALSE) { wprintf(L"%s\n",CkImapW_lastErrorText(imap)); CkJsonObjectW_Dispose(jsonToken); CkImapW_Dispose(imap); return; } // Use OAuth2 authentication. CkImapW_putAuthMethod(imap,L"XOAUTH2"); // Login using our username (i.e. email address) and the access token for the password. success = CkImapW_Login(imap,L"OFFICE365_EMAIL_ADDRESS",CkJsonObjectW_stringOf(jsonToken,L"access_token")); if (success == FALSE) { wprintf(L"%s\n",CkImapW_lastErrorText(imap)); CkJsonObjectW_Dispose(jsonToken); CkImapW_Dispose(imap); return; } wprintf(L"O365 OAuth authentication is successful.\n"); // Get the list of mailboxes. refName = L""; wildcardedMailbox = L"*"; subscribed = FALSE; mboxes = CkMailboxesW_Create(); success = CkImapW_MbxList(imap,subscribed,refName,wildcardedMailbox,mboxes); if (success == FALSE) { wprintf(L"%s\n",CkImapW_lastErrorText(imap)); CkJsonObjectW_Dispose(jsonToken); CkImapW_Dispose(imap); CkMailboxesW_Dispose(mboxes); return; } i = 0; while (i < CkMailboxesW_getCount(mboxes)) { wprintf(L"%s\n",CkMailboxesW_getName(mboxes,i)); i = i + 1; } // Sample output looks like this: // Archive // Calendar // Calendar/Birthdays // Calendar/United States holidays // Contacts // Conversation History // Deleted Items // Drafts // INBOX // INBOX/abc // INBOX/misc // INBOX/misc/birdeye // INBOX/old // INBOX/old/large // INBOX/receipts // Journal // Junk Email // Notes // Outbox // RSS Subscriptions // Sent Items // Sync Issues // Sync Issues/Conflicts // Sync Issues/Local Failures // Sync Issues/Server Failures // Tasks // Trash // Disconnect from the IMAP server. success = CkImapW_Disconnect(imap); CkJsonObjectW_Dispose(jsonToken); CkImapW_Dispose(imap); CkMailboxesW_Dispose(mboxes); } |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.