Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(Excel) Examine Yahoo Mail IMAP Session LogSee more Yahoo Mail ExamplesTo examine the IMAP session log, set the KeepSessionLog property = True, 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 Chilkat.JsonObject Set json = Chilkat.NewJsonObject success = json.LoadFile("qa_data/tokens/yahooMail.json") If (success <> True) Then Debug.Print "Failed to load Yahoo Mail access token file." Exit Sub End If accessToken = json.StringOf("access_token") ' Do OAuth2 authentication by using the access token as the password in the Login method below... Dim imap As Chilkat.Imap Set imap = Chilkat.NewImap imap.Ssl = True imap.Port = 993 ' Tell Chilkat IMAP to keep a session log. imap.KeepSessionLog = True ' Connect to the Yahoo IMAP server. success = imap.Connect("imap.mail.yahoo.com") If (success <> True) 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 <> True) 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. 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: wildcardedMailbox = "*" Set mboxes = imap.ListMailboxes(refName,wildcardedMailbox) If (imap.LastMethodSuccess = False) Then Debug.Print imap.LastErrorText Exit Sub End If 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-2022 Chilkat Software, Inc. All Rights Reserved.