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
(Visual Basic 6.0) Examine Yahoo Mail IMAP Session LogSee more Yahoo Mail ExamplesTo examine the IMAP session log, set the KeepSessionLog property = 1, and then examine the contents of the SessionLog property.
' 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" ' } Dim json As New ChilkatJsonObject Dim success As Long success = json.LoadFile("qa_data/tokens/yahooMail.json") If (success <> 1) Then Debug.Print "Failed to load Yahoo Mail access token file." Exit Sub End If Dim accessToken As String accessToken = json.StringOf("access_token") ' Do OAuth2 authentication by using the access token as the password in the Login method below... Dim imap As New ChilkatImap imap.Ssl = 1 imap.Port = 993 ' Tell Chilkat IMAP to keep a session log. imap.KeepSessionLog = 1 ' Connect to the Yahoo IMAP server. success = imap.Connect("imap.mail.yahoo.com") If (success <> 1) Then Debug.Print imap.LastErrorText Exit Sub End If ' Indicate that XOAUTH2 authentication is to be used: imap.AuthMethod = "XOAUTH2" ' Login ' Use the email address of the Yahoo Mail account that granted authorization. success = imap.Login("user@yahoo.com",accessToken) If (success <> 1) Then Debug.Print imap.LastErrorText Else Debug.Print "Successfully authenticated with Yahoo IMAP using XOAUTH2!" End If ' The ListMailboxes method returns a Mailboxes object ' that contains the collection of mailboxes. ' It accepts two arguments: a refName and a wildcardedMailbox. Dim refName As String 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: Dim wildcardedMailbox As String wildcardedMailbox = "*" Dim mboxes As Mailboxes Set mboxes = imap.ListMailboxes(refName,wildcardedMailbox) If (imap.LastMethodSuccess = 0) Then Debug.Print imap.LastErrorText Exit Sub End If Dim i As Long i = 0 Do While i < mboxes.Count Debug.Print mboxes.GetName(i) i = i + 1 Loop ' Sample output looks like this: ' Archive ' Bulk Mail ' Draft ' Inbox ' Inbox/emailsWithAttach ' Inbox/test ' Sent ' Trash ' Examine the session log Debug.Print imap.SessionLog ' Sample session log ' ----INFO---- ' Connecting to IMAP server at imap.mail.yahoo.com:993 ' ----IMAP RESPONSE---- ' * OK [CAPABILITY IMAP4rev1 SASL-IR AUTH=PLAIN AUTH=XOAUTH2 AUTH=OAUTHBEARER ID MOVE NAMESPACE XYMHIGHESTMODSEQ UIDPLUS LITERAL+ CHILDREN X-MSG-EXT OBJECTID] IMAP4rev1 Hello ' ----IMAP REQUEST---- ' aaab AUTHENTICATE XOAUTH2 ' ----IMAP RESPONSE---- ' aaab OK AUTHENTICATE completed ' ----IMAP REQUEST---- ' aaac LIST "" "*" ' ----IMAP RESPONSE---- ' * LIST (\Archive \HasNoChildren) "/" "Archive" ' * LIST (\Junk \HasNoChildren) "/" "Bulk Mail" ' * LIST (\Drafts \HasNoChildren) "/" "Draft" ' * LIST (\HasChildren) "/" "Inbox" ' * LIST (\HasNoChildren) "/" "Inbox/emailsWithAttach" ' * LIST (\HasNoChildren) "/" "Inbox/test" ' * LIST (\Sent \HasNoChildren) "/" "Sent" ' * LIST (\Trash \HasNoChildren) "/" "Trash" ' aaac OK LIST completed ' Disconnect from the IMAP server. success = imap.Disconnect() |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.