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 FoxPro) Outlook --Download Attachments for a Specific MessageSee more Outlook ExamplesDemonstrates how to download the attachments for a particular email message. 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
LOCAL loHttp LOCAL loSbResponse LOCAL lcMessageId LOCAL lnSuccess LOCAL loJson LOCAL loSbSavePath LOCAL loAttachData LOCAL loLastMod LOCAL loFac LOCAL i LOCAL lnNumMessages LOCAL lnSizeInBytes * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Http') loHttp = CreateObject('Chilkat.Http') * 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). loHttp.AuthToken = "MICROSOFT_GRAPH_ACCESS_TOKEN" * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbResponse = CreateObject('Chilkat.StringBuilder') * Sends: GET /users/{user_id | userPrincipalName}/messages/{message_id}/attachments * Note: It is also possible to use the literal string "me" for the current logged-on user. * For example: GET /me/messages/{message_id}/attachments loHttp.ClearUrlVars() loHttp.SetUrlVar("userPrincipalName","chilkatsoft@outlook.com") * Assume we already have a message ID from previously listing the messages in a folder lcMessageId = "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAACnwqJUAABUcG0qWqkmQYqWLHQataQxAACnwrnOAAA=" loHttp.SetUrlVar("message_id",lcMessageId) * Send the request to download the attachments. lnSuccess = loHttp.QuickGetSb("https://graph.microsoft.com/v1.0/users/{$userPrincipalName}/messages/{$message_id}/attachments",loSbResponse) IF ((lnSuccess <> 1) AND (loHttp.LastStatus = 0)) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loSbResponse CANCEL ENDIF * The attachment data is contained within the JSON response. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.LoadSb(loSbResponse) loJson.EmitCompact = 0 ? "Status code = " + STR(loHttp.LastStatus) IF (loHttp.LastStatus <> 200) THEN ? loJson.Emit() ? "Failed." ENDIF * This is a sample JSON response. The code for parsing and extracting/saving the attachments * is shown below. * { * "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('chilkatsoft%40outlook.com')/messages('AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAA%3D%3D')/attachments", * "value": [ * { * "@odata.type": "#microsoft.graph.fileAttachment", * "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAAESABAAft6wtbaSJU6sgQLi98DI0Q==", * "lastModifiedDateTime": "2017-05-10T00:30:51Z", * "name": "fishing.pdf", * "contentType": "application/pdf", * "size": 295680, * "isInline": false, * "contentId": "F861B218BE380F44B16933097FDDACFC@namprd20.prod.outlook.com", * "contentLocation": null, * "contentBytes": "JVBERi0xLjMKJcfsj6 ... yZWYKMjk0MzY5CiUlRU9GCg==" * }, * { * "@odata.type": "#microsoft.graph.fileAttachment", * "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAL8huv8AAADn68XtMop0TpsYJGpfKXY9AAAAwSju2wAAAAESABAAXS7qXQ-iRUCYXnhJpN8Ihg==", * "lastModifiedDateTime": "2017-05-10T00:30:51Z", * "name": "testCert.cer", * "contentType": "application/octet-stream", * "size": 1674, * "isInline": false, * "contentId": "5E51FA33EF0F8941ACC8260395CB1A33@namprd20.prod.outlook.com", * "contentLocation": null, * "contentBytes": "MIIFRjCCBC6gAwIBA ... 7pt3C5w==" * } * ] * } * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbSavePath = CreateObject('Chilkat.StringBuilder') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.BinData') loAttachData = CreateObject('Chilkat.BinData') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.CkDateTime') loLastMod = CreateObject('Chilkat.CkDateTime') * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.FileAccess') loFac = CreateObject('Chilkat.FileAccess') i = 0 lnNumMessages = loJson.SizeOfArray("value") DO WHILE i < lnNumMessages loJson.I = i ? "name: " + loJson.StringOf("value[i].name") ? "contentType: " + loJson.StringOf("value[i].contentType") lnSizeInBytes = loJson.IntOf("value[i].size") ? "size: " + STR(lnSizeInBytes) * Extract the data and save to a file. loSbSavePath.SetString("qa_output/") loSbSavePath.Append(loJson.StringOf("value[i].name")) loAttachData.Clear() loAttachData.AppendEncoded(loJson.StringOf("value[i].contentBytes"),"base64") loAttachData.WriteFile(loSbSavePath.GetAsString()) * Get the last-modified date/time and set the output file's last-mod date/time.. loLastMod.SetFromTimestamp(loJson.StringOf("value[i].lastModifiedDateTime")) loFac.SetLastModified(loSbSavePath.GetAsString(),loLastMod) ? "----" i = i + 1 ENDDO * The output of the above loop is: * * name: fishing.pdf * contentType: application/pdf * size: 295680 * ---- * name: testCert.cer * contentType: application/octet-stream * size: 1674 * ---- * RELEASE loHttp RELEASE loSbResponse RELEASE loJson RELEASE loSbSavePath RELEASE loAttachData RELEASE loLastMod RELEASE loFac |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.