首页 > 解决方案 > 如何使用 Graph API 永久删除电子邮件?

问题描述

我正在使用 Graph API 来删除电子邮件。下面是代码。但是我无法永久删除电子邮件,因为它可以从“从服务器恢复已删除邮件”中恢复。有人知道如何使用 Graph API 做到这一点吗?谢谢你。

user = ""
message_id = ""
query_url = url + "users/" + user + "/messages?$filter=internetMessageId eq '" + message_id + "'"
print(query_url)
bearer_token = "Bearer" + " " + token["access_token"]
headers = {'Authorization': bearer_token, 'Content-type':'application/json'}
response = requests.get(query_url, headers=headers, verify=False)
result = json.loads(response.text)
result_emails = result["value"]

for email in result_emails:
    print email["sender"]["emailAddress"]["address"]
    print email["subject"]

    id = email["id"]
    delete_url = url + "users/" + user + "/messages/" + id
    print(delete_url)
    response = requests.delete(delete_url, headers=headers, verify=False)

标签: pythonemailgraphmicrosoft-graph-api

解决方案


当您硬删除 Exchange 中的邮件(即使使用 MFCMAPI)并且您打开了单项恢复时,邮件将最终出现在 Recoverable-items/purges 文件夹中,请参阅https://docs.microsoft.com/en-us/exchange /security-and-compliance/recoverable-items-folder/recoverable-items-folder。唯一一次真正删除它是在 MFA(托管文件夹助手)完成其工作周期之后。

因此,如果您想复制硬删除正在执行的操作,您只需将消息移动到 purges 文件夹,这将使其对用户不可见并且用户无法恢复(但管理员仍然可以恢复它)。

例如,您可以使用

POST https://graph.microsoft.com/v1.0/me/messages/AAMkADhAAATs28OAAA=/move
Content-type: application/json

{
  "destinationId": "recoverableitemspurges"
}


推荐阅读