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) Outlook -- List Mail FoldersSee more Outlook ExamplesUses the Microsoft Graph API to list Outlook mail folders. Note: This example requires Chilkat v9.5.0.67 or greater. This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com For more information, see https://docs.microsoft.com/en-us/graph/api/user-list-mailfolders?view=graph-rest-1.0&tabs=http
' This example requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim http As Chilkat.Http Set http = Chilkat.NewHttp ' Use your previously obtained access token here: ' See the following examples for getting an access token: ' Get Microsoft Graph OAuth2 Access Token (Azure AD v2.0 Endpoint). ' Get Microsoft Graph OAuth2 Access Token (Azure AD Endpoint). ' Refresh Access Token (Azure AD v2.0 Endpoint). ' Refresh Access Token (Azure AD Endpoint). http.AuthToken = "MICROSOFT_GRAPH_ACCESS_TOKEN" Dim sbResponse As Chilkat.StringBuilder Set sbResponse = Chilkat.NewStringBuilder ' Sends: GET /users/{id | userPrincipalName}/mailFolders ' Note: It is also possible to use the literal string "me" for the current logged-on user. ' For example: GET /me/mailFolders http.ClearUrlVars Dim success As Boolean success = http.SetUrlVar("userPrincipalName","chilkatsoft@outlook.com") success = http.QuickGetSb("https://graph.microsoft.com/v1.0/users/{$userPrincipalName}/mailFolders",sbResponse) If ((success <> True) And (http.LastStatus = 0)) Then Debug.Print http.LastErrorText Exit Sub End If Dim json As Chilkat.JsonObject Set json = Chilkat.NewJsonObject success = json.LoadSb(sbResponse) json.EmitCompact = False Debug.Print "Status code = "; http.LastStatus If (http.LastStatus <> 200) Then Debug.Print json.Emit() Debug.Print "Failed." End If Debug.Print json.Emit() Debug.Print "----" ' In my test case, this is the result (see below) ' Apparently, this lists folders without listing subfolders (aka child folders) ' There's another REST API call to list child folders. ' To iterate over the folders: i = 0 numFolders = json.SizeOfArray("value") Do While i < numFolders json.I = i Debug.Print json.StringOf("value[i].displayName") i = i + 1 Loop ' The output from the above loop: ' Archive ' Deleted Items ' Drafts ' Inbox ' Junk Email ' Outbox ' Sent Items ' ------------------------------------------------------------------------------------ ' The raw JSON response: ' { ' "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('chilkatsoft%40outlook.com')/mailFolders", ' "value": [ ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAG8XunwAAAA=", ' "displayName": "Archive", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 0 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEKAAAA", ' "displayName": "Deleted Items", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 0 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEPAAAA", ' "displayName": "Drafts", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 0 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA", ' "displayName": "Inbox", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 2, ' "unreadItemCount": 0, ' "totalItemCount": 4 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEiAAAA", ' "displayName": "Junk Email", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 0 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgELAAAA", ' "displayName": "Outbox", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 0 ' }, ' { ' "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEJAAAA", ' "displayName": "Sent Items", ' "parentFolderId": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEIAAAA", ' "childFolderCount": 0, ' "unreadItemCount": 0, ' "totalItemCount": 14 ' } ' ] ' } ' ' ------------------------------------------------------------------------------------------------------ ' This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com ' ' The Microsoft Graph Outlook Mail API lets you read, create, and send messages and attachments, ' view and respond to event messages, and manage folders that are secured by Azure Active Directory ' in Office 365. It also provides the same functionality in Microsoft accounts specifically ' in these domains: Hotmail.com, Live.com, MSN.com, Outlook.com, and Passport.com. |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.