Python 使用microsoft graph api删除共享邮箱的电子邮件

Python 使用microsoft graph api删除共享邮箱的电子邮件,python,python-requests,microsoft-graph-api,bearer-token,bad-request,Python,Python Requests,Microsoft Graph Api,Bearer Token,Bad Request,我得到了请帮助!!!!!!!!!!! 参考: 已授予Mail.ReadWrite应用程序权限,但它仍不工作。 虽然我能够读取数据,但工作正常。**从该行读取数据 import msal from office365.graph_client import GraphClient import json import requests import urllib3 authority_url = 'https://login.microsoftonline.com/ae4df1f7-611e-44

我得到了请帮助!!!!!!!!!!! 参考: 已授予Mail.ReadWrite应用程序权限,但它仍不工作。 虽然我能够读取数据,但工作正常。**

从该行读取数据

import msal
from office365.graph_client import GraphClient
import json
import requests
import urllib3
authority_url = 'https://login.microsoftonline.com/ae4df1f7-611e-444f-897e-f964e1205171'
authority=authority_url,
app = msal.ConfidentialClientApplication(
client_id = '------',
client_credential = '-----'
)
token = app.acquire_token_for_client(scopes=["https://graph.microsoft.com/.default"])
data = json.dumps(token)
dict1= json.loads(data)
token_value = dict1["access_token"]   ##Able to obtain the token
url = 'https://graph.microsoft.com/v1.0/users/sharedmailbox@xyz.com/mailFolders/Inbox/messages/59f3b86064fc4590969f468bbffe323c@MW4PR15MB3453.namprd15.prod.outlook.com'
headers = {
    'authorization': "Bearer " + token_value,
    }
response = requests.delete(url, headers=headers)
print(response)
看起来您正试图使用InternetMessageId删除不起作用的邮件,您需要找到底层ItemId(即Exchange Mid)。如果您只有InternetMessageId,那么首先使用过滤器查找它,例如

url = 'https://graph.microsoft.com/v1.0/users/sharedmailbox@xyz.com/mailFolders/Inbox/messages/59f3b86064fc4590969f468bbffe323c@MW4PR15MB3453.namprd15.prod.outlook.com

InternetMessageId(不管怎样,来自Office365的)总是包含在中,所以您需要包含并转义它。您需要获取搜索返回的Base64 id属性,然后使用该属性。

您好,谢谢您的回答,但我收到了一个响应代码405:“代码”:“ErrorInvalidRequest”,“消息”:“OData请求不受支持”。嘿,我现在可以删除,只使用{id}。不过谢谢你的帮助。
https://graph.microsoft.com/v1.0/users/sharedmailbox@xyz.com/mailFolders/Inbox/messages/$filter=internetMessageId eq '%3C59f3b86064fc4590969f468bbffe323c%40MW4PR15MB3453.namprd15.prod.outlook.com%3E'