Xbase++
Xbase++
Outlook -- Delete Email
See more Outlook Examples
Demonstrates how to delete email using the Microsoft Graph API.Note: This example requires Chilkat v9.5.0.68 or greater.
This example applies to: Exchange Online | Office 365 | Hotmail.com | Live.com | MSN.com | Outlook.com | Passport.com
Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oHttp
LOCAL oHtFolderMap
LOCAL oSbMap
LOCAL cFolderId
LOCAL oJson
LOCAL oSbResponse
LOCAL cResp
LOCAL cMessageId
LOCAL i
LOCAL nNumEmails
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:
oHttp:AuthToken := "MICROSOFT_GRAPH_ACCESS_TOKEN"
// This example will search /Inbox for a message we want to delete.
// First we need to get the folder ID for /Inbox.
// Then we'll search for messages based on some criteria, and delete the matching messages.
// Get the folder ID for /Inbox from the folder map created by this example
oHtFolderMap := CreateObject("Chilkat.Hashtable")
oSbMap := CreateObject("Chilkat.StringBuilder")
oSbMap:LoadFile("qa_data/outlook/folderMap.xml", "utf-8")
oHtFolderMap:AddFromXmlSb(oSbMap)
// Get the ID for the "/Inbox" folder:
cFolderId := oHtFolderMap:LookupStr("/Inbox")
IF (oHtFolderMap:LastMethodSuccess != 1)
? "Folder ID not found"
oHttp:destroy()
oHtFolderMap:destroy()
oSbMap:destroy()
RETURN
ENDIF
nSuccess := 1
oJson := CreateObject("Chilkat.JsonObject")
oJson:EmitCompact := 0
// Search for emails in this folder with the phrase "Amazon SES" in the subject, and return only the id and subject.
oHttp:SetUrlVar("folder_id", cFolderId)
oHttp:SetUrlVar("select", "id,subject")
oHttp:SetUrlVar("filter", "contains(subject,'Amazon SES')")
oSbResponse := CreateObject("Chilkat.StringBuilder")
nSuccess := oHttp:QuickGetSb("https://graph.microsoft.com/v1.0/me/mailFolders/{$folder_id}/messages?$filter={$filter}&$select={$select}", oSbResponse)
IF (nSuccess != 1)
? oHttp:LastErrorText
oHttp:destroy()
oHtFolderMap:destroy()
oSbMap:destroy()
oJson:destroy()
oSbResponse:destroy()
RETURN
ENDIF
oJson:LoadSb(oSbResponse)
// Show the results..
? oJson:Emit()
// Sample results:
// {
// "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('me')/mailFolders('AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgAuAAADsVyfxjDU406Ic4X7ill8xAEA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA')/messages(id,subject)",
// "value": [
// {
// "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AAA1jyl6\"",
// "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_AAAAA=",
// "subject": "Amazon SES Address Verification Request in region US West (Oregon)"
// },
// {
// "@odata.etag": "W/\"CQAAABYAAADn68XtMop0TpsYJGpfKXY9AAA1jyl7\"",
// "id": "AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_EAAAA=",
// "subject": "Amazon SES Address Verification Request in region US West (Oregon)"
// }
// ]
// }
//
// ------------
// Proceed to delete each of the above emails...
i := 0
nNumEmails := oJson:SizeOfArray("value")
DO WHILE i < nNumEmails
oJson:I := i
cMessageId := oJson:StringOf("value[i].id")
oHttp:SetUrlVar("message_id", cMessageId)
? "Deleting " + cMessageId
cResp := oHttp:QuickDeleteStr("https://graph.microsoft.com/v1.0/me/messages/{$message_id}")
IF (oHttp:LastMethodSuccess != 1)
? oHttp:LastErrorText
oHttp:destroy()
oHtFolderMap:destroy()
oSbMap:destroy()
oJson:destroy()
oSbResponse:destroy()
RETURN
ENDIF
// A 204 response indicates success.
IF (oHttp:LastStatus == 204)
? "Message deleted."
ELSE
? "Message not deleted."
? cResp
ENDIF
i := i + 1
ENDDO
// Sample output:
// Deleting AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_AAAAA=
// Message deleted.
// Deleting AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_EAAAA=
// Message deleted.
//
oHttp:destroy()
oHtFolderMap:destroy()
oSbMap:destroy()
oJson:destroy()
oSbResponse:destroy()