python - 如何使用 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)
解决方案
当您硬删除 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"
}
推荐阅读
- loopback - 未找到 http://localhost:3000/openapi.json -loopback 3
- algorithm - 如果 knn 结果返回相同的数量,我应该选择哪个结果
- python - 拟合衍生 Python 的约束
- ios - 如何从容器应用程序更新今天的小部件?
- c# - 如何添加设计器控件用于设置目标时间的表单?
- coq - 自动调度单例归纳类型
- kubernetes - 在 k8s 上设置的 hyperledger fabric 无法部署容器
- paraview - Paraview 崩溃:“../sysdeps/unix/sysv/linux/raise.c:没有这样的文件或目录”
- python - PLY 使用动态令牌
- vba - 如果 Err.Number 不是预期的错误号,则 VBA 重现错误