![]() |
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
(Delphi DLL) Office365 IMAP List MailboxesSee more Office365 ExamplesList the Office365 IMAP mailboxes.Note: This example requires Chilkat v11.0.0 or greater.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Mailboxes, Imap, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var success: Boolean; jsonToken: HCkJsonObject; imap: HCkImap; refName: PWideChar; wildcardedMailbox: PWideChar; subscribed: Boolean; mboxes: HCkMailboxes; i: Integer; begin 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 := CkJsonObject_Create(); success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/office365.json'); if (success = False) then begin Memo1.Lines.Add('Failed to open the office365 OAuth JSON file.'); Exit; end; imap := CkImap_Create(); CkImap_putSsl(imap,True); CkImap_putPort(imap,993); // Connect to the Office365 IMAP server. success := CkImap_Connect(imap,'outlook.office365.com'); if (success = False) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Use OAuth2 authentication. CkImap_putAuthMethod(imap,'XOAUTH2'); // Login using our username (i.e. email address) and the access token for the password. success := CkImap_Login(imap,'OFFICE365_EMAIL_ADDRESS',CkJsonObject__stringOf(jsonToken,'access_token')); if (success = False) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; Memo1.Lines.Add('O365 OAuth authentication is successful.'); // Get the list of mailboxes. refName := ''; wildcardedMailbox := '*'; subscribed := False; mboxes := CkMailboxes_Create(); success := CkImap_MbxList(imap,subscribed,refName,wildcardedMailbox,mboxes); if (success = False) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; i := 0; while i < CkMailboxes_getCount(mboxes) do begin Memo1.Lines.Add(CkMailboxes__getName(mboxes,i)); i := i + 1; end; // 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 := CkImap_Disconnect(imap); CkJsonObject_Dispose(jsonToken); CkImap_Dispose(imap); CkMailboxes_Dispose(mboxes); end; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.