DataFlex
DataFlex
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 DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoHttp
Handle hoHtFolderMap
Variant vSbMap
Handle hoSbMap
String sFolderId
Handle hoJson
Variant vSbResponse
Handle hoSbResponse
String sResp
String sMessageId
Integer i
Integer iNumEmails
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatHttp)) To hoHttp
If (Not(IsComObjectCreated(hoHttp))) Begin
Send CreateComObject of hoHttp
End
// Use your previously obtained access token here:
Set ComAuthToken Of hoHttp To "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
Get Create (RefClass(cComChilkatHashtable)) To hoHtFolderMap
If (Not(IsComObjectCreated(hoHtFolderMap))) Begin
Send CreateComObject of hoHtFolderMap
End
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbMap
If (Not(IsComObjectCreated(hoSbMap))) Begin
Send CreateComObject of hoSbMap
End
Get ComLoadFile Of hoSbMap "qa_data/outlook/folderMap.xml" "utf-8" To iSuccess
Get pvComObject of hoSbMap to vSbMap
Get ComAddFromXmlSb Of hoHtFolderMap vSbMap To iSuccess
// Get the ID for the "/Inbox" folder:
Get ComLookupStr Of hoHtFolderMap "/Inbox" To sFolderId
Get ComLastMethodSuccess Of hoHtFolderMap To bTemp1
If (bTemp1 <> True) Begin
Showln "Folder ID not found"
Procedure_Return
End
Move True To iSuccess
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
// Search for emails in this folder with the phrase "Amazon SES" in the subject, and return only the id and subject.
Get ComSetUrlVar Of hoHttp "folder_id" sFolderId To iSuccess
Get ComSetUrlVar Of hoHttp "select" "id,subject" To iSuccess
Get ComSetUrlVar Of hoHttp "filter" "contains(subject,'Amazon SES')" To iSuccess
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponse
If (Not(IsComObjectCreated(hoSbResponse))) Begin
Send CreateComObject of hoSbResponse
End
Get pvComObject of hoSbResponse to vSbResponse
Get ComQuickGetSb Of hoHttp "https://graph.microsoft.com/v1.0/me/mailFolders/{$folder_id}/messages?$filter={$filter}&$select={$select}" vSbResponse To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
Get pvComObject of hoSbResponse to vSbResponse
Get ComLoadSb Of hoJson vSbResponse To iSuccess
// Show the results..
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// 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...
Move 0 To i
Get ComSizeOfArray Of hoJson "value" To iNumEmails
While (i < iNumEmails)
Set ComI Of hoJson To i
Get ComStringOf Of hoJson "value[i].id" To sMessageId
Get ComSetUrlVar Of hoHttp "message_id" sMessageId To iSuccess
Showln "Deleting " sMessageId
Get ComQuickDeleteStr Of hoHttp "https://graph.microsoft.com/v1.0/me/messages/{$message_id}" To sResp
Get ComLastMethodSuccess Of hoHttp To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoHttp To sTemp1
Showln sTemp1
Procedure_Return
End
// A 204 response indicates success.
Get ComLastStatus Of hoHttp To iTemp1
If (iTemp1 = 204) Begin
Showln "Message deleted."
End
Else Begin
Showln "Message not deleted."
Showln sResp
End
Move (i + 1) To i
Loop
// Sample output:
// Deleting AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_AAAAA=
// Message deleted.
// Deleting AQMkADAwATM0MDAAMS1iNTcwLWI2NTEtMDACLTAwCgBGAAADsVyfxjDU406Ic4X7ill8xAcA5_vF7TKKdE6bGCRqXyl2PQAAAgEMAAAA5_vF7TKKdE6bGCRqXyl2PQAAADLHd_EAAAA=
// Message deleted.
//
End_Procedure