I want to read certain email messages and filter them. I am using Microsoft Graph API to query the office 365 mail box as below. I also added API permission "Mail.ReadBasic.All" for getting mails from application.
graph_api_endpoint = 'https://graph.microsoft.com/v1.0/users/[email protected]/mailFolders/Inbox/messages?$select=body'
# Function to get inbox messages
def get_inbox_messages(access_token):
headers = {
'Authorization': f'Bearer {access_token}',
'Accept': 'application/json',
'Prefer': 'outlook.body-content-type="text"',
}
response = requests.get(graph_api_endpoint, headers=headers)
print('get_inbox_messages response:', response)
return response.json().get('value', [])
# MSAL ConfidentialClientApplication
app = ConfidentialClientApplication(
client_id,
authority=authority,
client_credential=client_secret,
)
token_response = app.acquire_token_for_client(scopes=[scope])
# Access token
access_token = token_response['access_token']
print(f"Access Token: {access_token}")
if access_token:
inbox_messages = get_inbox_messages(access_token)
print('Inbox Messages:', inbox_messages)
else:
print('Failed to obtain access token')
But inbox_messages doesn't contain body fields. Its value is like this.
[{'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACbgpYA"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACb9YkJAAA='}, {'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACbgpAa"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACb9YkIAAA='}, {'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACazuV6"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACbQPdBAAA='}, {'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACazuV4"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACbQPdAAAA='}, {'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACazuVn"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACbQPc-AAA='}, {'@odata.etag': 'W/"CQAAABYAAAB3N5CnvFQSSqeWD3xLEpaUAACazuVg"', 'id': 'AAMkAGYyMzUwZDAxLTJkNmItNGJjYi1iNThkLTcxMWU2MzIxMjg2ZgBGAAAAAAAKfqhNGZ8HSr-8OzkXZKcQBwB3N5CnvFQSSqeWD3xLEpaUAAAAAAEMAAB3N5CnvFQSSqeWD3xLEpaUAACbQPc_AAA='}]
Please help me to get body in html format or text format.
This behavior can be cause by the permission
Mail.ReadBasic.All.With this permission the application cannot read
body,previewBody,attachmentsand any extended properties.To be able to read body, you need to grant higher privileged application permission
Mail.Read.