Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Office365 IMAP List MailboxesSee more Office365 ExamplesList the Office365 IMAP mailboxes.
load ./chilkat.dll # 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. set jsonToken [new_CkJsonObject] set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/office365.json"] if {$success == 0} then { puts "Failed to open the office365 OAuth JSON file." delete_CkJsonObject $jsonToken exit } set imap [new_CkImap] CkImap_put_Ssl $imap 1 CkImap_put_Port $imap 993 # Connect to the Office365 IMAP server. set success [CkImap_Connect $imap "outlook.office365.com"] if {$success != 1} then { puts [CkImap_lastErrorText $imap] delete_CkJsonObject $jsonToken delete_CkImap $imap exit } # Use OAuth2 authentication. CkImap_put_AuthMethod $imap "XOAUTH2" # Login using our username (i.e. email address) and the access token for the password. set success [CkImap_Login $imap "OFFICE365_EMAIL_ADDRESS" [CkJsonObject_stringOf $jsonToken "access_token"]] if {$success != 1} then { puts [CkImap_lastErrorText $imap] delete_CkJsonObject $jsonToken delete_CkImap $imap exit } puts "O365 OAuth authentication is successful." # The ListMailboxes method returns a Mailboxes object # that contains the collection of mailboxes. # It accepts two arguments: a refName and a wildcardedMailbox. set refName "" # refName is usually set to an empty string. # A non-empty reference name argument is the name of a mailbox or a level of # mailbox hierarchy, and indicates the context in which the mailbox # name is interpreted. # Select all mailboxes matching this pattern: set wildcardedMailbox "*" # mboxes is a CkMailboxes set mboxes [CkImap_ListMailboxes $imap $refName $wildcardedMailbox] if {[CkImap_get_LastMethodSuccess $imap] == 0} then { puts [CkImap_lastErrorText $imap] delete_CkJsonObject $jsonToken delete_CkImap $imap exit } set i 0 while {$i < [CkMailboxes_get_Count $mboxes]} { puts [CkMailboxes_getName $mboxes $i] set i [expr $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. set success [CkImap_Disconnect $imap] delete_CkMailboxes $mboxes delete_CkJsonObject $jsonToken delete_CkImap $imap |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.