Sample code for 30+ languages & platforms
Xbase++

Outlook -- List Attachments for a Specific Message

See more Outlook Examples

Demonstrates how to list 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

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oHttp
LOCAL oSbResponse
LOCAL cMessageId
LOCAL oJson

nSuccess := 0

//  This example requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

oHttp := 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).

oHttp:AuthToken := "MICROSOFT_GRAPH_ACCESS_TOKEN"

oSbResponse := 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

oHttp:ClearUrlVars()
oHttp:SetUrlVar("userPrincipalName", "chilkatsoft@outlook.com")

//  Assume we already have a message ID from previously listing the messages in a folder
cMessageId := "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAACnwqJUAABUcG0qWqkmQYqWLHQataQxAACnwrnOAAA="
oHttp:SetUrlVar("message_id", cMessageId)

//  Send the request to list the messages.
nSuccess := oHttp:QuickGetSb("https://graph.microsoft.com/v1.0/users/{$userPrincipalName}/messages/{$message_id}/attachments", oSbResponse)
IF ((nSuccess != 1) .AND. (oHttp:LastStatus == 0))
    ? oHttp:LastErrorText
    oHttp:destroy()
    oSbResponse:destroy()
    RETURN
ENDIF

oJson := CreateObject("Chilkat.JsonObject")
oJson:LoadSb(oSbResponse)
oJson:EmitCompact := 0

? "Status code = " + Str(oHttp:LastStatus)
IF (oHttp:LastStatus != 200)
    ? oJson:Emit()
    ? "Failed."
ENDIF

oSbResponse:Clear()
oJson:EmitSb(oSbResponse)
oSbResponse:WriteFile("qa_output/attachments.txt", "utf-8", 0)

? "OK"

oHttp:destroy()
oSbResponse:destroy()
oJson:destroy()