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
(PureBasic) List Yahoo Mail IMAP MailboxesSee more Yahoo Mail ExamplesList Yahoo Mail mailboxes.
IncludeFile "CkMailboxes.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkImap.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; See Get Yahoo Mail OAuth2 Access Token for Desktop App ; for sample code showing how to obtain a Yahoo Mail access token. ; In this example, our access token was previously saved to the following file which contains JSON like this: ; { ; "access_token": "kCVQdnOdul...LHucA--", ; "refresh_token": "AIenVXETSo0jklFBVkPS8vVm8E.Ej9ToRG.xDbDYmZ65WIs5t6CZhDrD", ; "expires_in": 3600, ; "token_type": "bearer", ; "xoauth_yahoo_guid": "HGDQCVF5JB4YDOWHITQJFBHCWA" ; } json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(json,"qa_data/tokens/yahooMail.json") If success <> 1 Debug "Failed to load GMail access token file." CkJsonObject::ckDispose(json) ProcedureReturn EndIf accessToken.s = CkJsonObject::ckStringOf(json,"access_token") ; Do OAuth2 authentication by using the access token as the password in the Login method below... imap.i = CkImap::ckCreate() If imap.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkImap::setCkSsl(imap, 1) CkImap::setCkPort(imap, 993) ; Connect to the Yahoo IMAP server. success = CkImap::ckConnect(imap,"imap.mail.yahoo.com") If success <> 1 Debug CkImap::ckLastErrorText(imap) CkJsonObject::ckDispose(json) CkImap::ckDispose(imap) ProcedureReturn EndIf ; Indicate that XOAUTH2 authentication is to be used: CkImap::setCkAuthMethod(imap, "XOAUTH2") ; Login ; Use the email address of the GMail account that granted authorization. success = CkImap::ckLogin(imap,"user@yahoo.com",accessToken) If success <> 1 Debug CkImap::ckLastErrorText(imap) Else Debug "Successfully authenticated with Yahoo IMAP using XOAUTH2!" EndIf ; The ListMailboxes method returns a Mailboxes object ; that contains the collection of mailboxes. ; It accepts two arguments: a refName and a wildcardedMailbox. refName.s = "" ; 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: wildcardedMailbox.s = "*" mboxes.i = CkImap::ckListMailboxes(imap,refName,wildcardedMailbox) If CkImap::ckLastMethodSuccess(imap) = 0 Debug CkImap::ckLastErrorText(imap) CkJsonObject::ckDispose(json) CkImap::ckDispose(imap) ProcedureReturn EndIf i.i = 0 While i < CkMailboxes::ckCount(mboxes) Debug CkMailboxes::ckGetName(mboxes,i) i = i + 1 Wend ; Sample output looks like this: ; Archive ; Bulk Mail ; Draft ; Inbox ; Inbox/emailsWithAttach ; Inbox/test ; Sent ; Trash ; Disconnect from the IMAP server. success = CkImap::ckDisconnect(imap) CkMailboxes::ckDispose(mboxes) CkJsonObject::ckDispose(json) CkImap::ckDispose(imap) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.