Les API sous la version /beta dans Microsoft Graph sont susceptibles d’être modifiées. L’utilisation de ces API dans des applications de production n’est pas prise en charge. Pour déterminer si une API est disponible dans v1.0, utilisez le sélecteur Version .
Obtient les messages dans la boîte aux lettres de l’utilisateur connecté (y compris les dossiers d’éléments supprimés et de courrier basse priorité).
Selon la taille de la page et les données de la boîte aux lettres, l'obtention de messages à partir d'une boîte aux lettres peut entraîner des demandes multiples. La taille de page par défaut est de 10 messages. Utilisez $top pour personnaliser la taille de page, dans la plage de 1 et 1 000.
Pour améliorer le temps de réponse à l’opération, utilisez $select pour spécifier les propriétés exactes dont vous avez besoin. Consultez exemple 1 ci-dessous. Vous pouvez affiner les valeurs de $select et $top, en particulier lorsque vous devez utiliser une taille de page plus grande, car le renvoi d’une page avec des centaines de messages chacun avec une charge utile de réponse complète peut déclencher le délai d'attente de la passerelle(HTTP 504).
Pour obtenir la page suivante de messages, appliquez simplement l’URL entière retournée dans @odata.nextLink à la requête get-messages suivante. Cette URL inclut les paramètres de la requête que vous avez peut-être spécifiés dans la demande initiale.
N’essayez pas d’extraire la valeur $skip de l’URL @odata.nextLink pour manipuler des réponses. Cette API utilise la valeur $skip pour contrôler le nombre d’éléments qui sont passés dans boîte aux lettres de l’utilisateur pour renvoyer une page d’éléments de type de message. La valeur $skip peut donc être supérieure à la taille de la page. même dans la réponse initiale. Pour plus d’informations, voir Pagination des données Microsoft Graph dans votre application.
Vous pouvez filtrer sur les messages et obtenir uniquement ceux qui incluent une mention de l’utilisateur connecté. Un exemple est fourni ci-dessous.
Par défaut, l’opération GET /me/messages ne retourne pas la propriété mentions . Utilisez le $expand paramètre de requête pour rechercher les détails de chaque mention dans un message.
Une application peut récupérer les messages du dossier de courrier d’un autre utilisateur dans deux cas :
Si l’application dispose des autorisations d’application ; ou
Si l’application a les autorisations déléguées adéquates d’un utilisateur et si un autre utilisateur a partagé un dossier de courrier avec cet utilisateur, ou s’il a accordé un accès délégué à cet utilisateur. Consultez les détails et un exemple.
Vous pouvez utiliser le $filter paramètre de requête sur la propriété mentionsPreview pour obtenir les messages qui mentionnent l’utilisateur connecté.
Utilisation du filtre et d’orderby dans la même requête.
Lorsque vous utilisez à la fois $filter et $orderby, veillez à spécifier des propriétés comme suit :
Les propriétés qui apparaissent dans $orderby doivent également s'afficher dans $filter.
Les propriétés qui apparaissent dans $orderby sont dans le même ordre que dans $filter.
Les propriétés présentes dans $orderby s’affichent dans $filter avant les autres propriétés.
À défaut, l’erreur suivante apparaît :
Code d’erreur :InefficientFilter
Message d’erreur :The restriction or sort order is too complex for this operation.
Format auquel les propriétés body et uniqueBody sont renvoyées. Les valeurs peuvent être au format « texte » ou « html ». Si l’en-tête n’est pas spécifié, les propriétés body et uniqueBody sont renvoyées au format HTML. Facultatif.
Corps de la demande
N’indiquez pas le corps de la demande pour cette méthode.
Réponse
Si elle réussit, cette méthode renvoie un code de réponse et une 200 OK collection d’objets de message dans le corps de la réponse.
Exemples
Exemple 1 : répertorier tous les messages
Demande
Le premier exemple obtient les 10 premiers messages par défaut dans la boîte aux lettres de l’utilisateur connecté. Il utilise $select pour renvoyer un sous-ensemble des propriétés de chaque message dans la réponse.
GET https://graph.microsoft.com/beta/me/messages?$select=sender,subject
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Messages.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "sender","subject" };
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
//other-imports
)
requestParameters := &graphusers.ItemMessagesRequestBuilderGetQueryParameters{
Select: [] string {"sender","subject"},
}
configuration := &graphusers.ItemMessagesRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
messages, err := graphClient.Me().Messages().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
MessageCollectionResponse result = graphClient.me().messages().get(requestConfiguration -> {
requestConfiguration.queryParameters.select = new String []{"sender", "subject"};
});
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.messages.messages_request_builder import MessagesRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = MessagesRequestBuilder.MessagesRequestBuilderGetQueryParameters(
select = ["sender","subject"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.me.messages.get(request_configuration = request_configuration)
L’exemple suivant illustre la réponse. Pour obtenir la page suivante de messages, appliquez l’URL renvoyée dans @odata.nextLink à une requête GET suivante.
Exemple 2 : utiliser $filter pour obtenir tous les messages répondant à une condition spécifique
Demande
L’exemple suivant filtre tous les messages de la boîte aux lettres de l’utilisateur connecté pour ceux qui mentionnent l’utilisateur. Il utilise $select également pour retourner un sous-ensemble des propriétés de chaque message dans la réponse.
L’exemple suivant incorpore également l’encodage d’URL pour les caractères d’espace dans la chaîne de paramètre de requête.
GET https://graph.microsoft.com/beta/me/messages?$filter=MentionsPreview/IsMentioned%20eq%20true&$select=Subject,Sender,ReceivedDateTime,MentionsPreview
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Messages.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Filter = "MentionsPreview/IsMentioned eq true";
requestConfiguration.QueryParameters.Select = new string []{ "Subject","Sender","ReceivedDateTime","MentionsPreview" };
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
//other-imports
)
requestFilter := "MentionsPreview/IsMentioned eq true"
requestParameters := &graphusers.ItemMessagesRequestBuilderGetQueryParameters{
Filter: &requestFilter,
Select: [] string {"Subject","Sender","ReceivedDateTime","MentionsPreview"},
}
configuration := &graphusers.ItemMessagesRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
messages, err := graphClient.Me().Messages().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
MessageCollectionResponse result = graphClient.me().messages().get(requestConfiguration -> {
requestConfiguration.queryParameters.filter = "MentionsPreview/IsMentioned eq true";
requestConfiguration.queryParameters.select = new String []{"Subject", "Sender", "ReceivedDateTime", "MentionsPreview"};
});
Import-Module Microsoft.Graph.Beta.Mail
# A UPN can also be used as -UserId.
Get-MgBetaUserMessage -UserId $userId -Filter "MentionsPreview/IsMentioned eq true" -Property "Subject,Sender,ReceivedDateTime,MentionsPreview"
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.messages.messages_request_builder import MessagesRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = MessagesRequestBuilder.MessagesRequestBuilderGetQueryParameters(
filter = "MentionsPreview/IsMentioned eq true",
select = ["Subject","Sender","ReceivedDateTime","MentionsPreview"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
result = await graph_client.me.messages.get(request_configuration = request_configuration)
Exemple 3 : utiliser l’en-tête prefer pour obtenir le corps du message et uniqueBody est au format texte
Demande
Le troisième exemple montre comment utiliser un Prefer: outlook.body-content-type="text" en-tête pour obtenir les propriétés body et uniqueBody de chaque message au format texte.
GET https://graph.microsoft.com/beta/me/messages?$select=subject,body,bodyPreview,uniqueBody
Prefer: outlook.body-content-type="text"
// Code snippets are only available for the latest version. Current version is 5.x
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Me.Messages.GetAsync((requestConfiguration) =>
{
requestConfiguration.QueryParameters.Select = new string []{ "subject","body","bodyPreview","uniqueBody" };
requestConfiguration.Headers.Add("Prefer", "outlook.body-content-type=\"text\"");
});
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
abstractions "github.com/microsoft/kiota-abstractions-go"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-beta-sdk-go/users"
//other-imports
)
headers := abstractions.NewRequestHeaders()
headers.Add("Prefer", "outlook.body-content-type=\"text\"")
requestParameters := &graphusers.ItemMessagesRequestBuilderGetQueryParameters{
Select: [] string {"subject","body","bodyPreview","uniqueBody"},
}
configuration := &graphusers.ItemMessagesRequestBuilderGetRequestConfiguration{
Headers: headers,
QueryParameters: requestParameters,
}
// To initialize your graphClient, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
messages, err := graphClient.Me().Messages().Get(context.Background(), configuration)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
MessageCollectionResponse result = graphClient.me().messages().get(requestConfiguration -> {
requestConfiguration.queryParameters.select = new String []{"subject", "body", "bodyPreview", "uniqueBody"};
requestConfiguration.headers.add("Prefer", "outlook.body-content-type=\"text\"");
});
Import-Module Microsoft.Graph.Beta.Mail
# A UPN can also be used as -UserId.
Get-MgBetaUserMessage -UserId $userId -Property "subject,body,bodyPreview,uniqueBody"
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.users.item.messages.messages_request_builder import MessagesRequestBuilder
from kiota_abstractions.base_request_configuration import RequestConfiguration
# To initialize your graph_client, see https://video2.skills-academy.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
query_params = MessagesRequestBuilder.MessagesRequestBuilderGetQueryParameters(
select = ["subject","body","bodyPreview","uniqueBody"],
)
request_configuration = RequestConfiguration(
query_parameters = query_params,
)
request_configuration.headers.add("Prefer", "outlook.body-content-type=\"text\"")
result = await graph_client.me.messages.get(request_configuration = request_configuration)
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.context":"https://graph.microsoft.com/beta/$metadata#users('cd209b0b-3f83-4c35-82d2-d88a61820480')/messages(subject,body,bodyPreview,uniqueBody)",
"value":[
{
"@odata.type":"#microsoft.graph.eventMessageRequest",
"@odata.etag":"W/\"CwAAABYAAABmWdbhEgBXTophjCWt81m9AAAoZYj5\"",
"id":"AAMkAGIAAAoZCfIAAA=",
"subject":"Orientation ",
"bodyPreview":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.",
"body":{
"contentType":"text",
"content":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.\r\n"
},
"uniqueBody":{
"contentType":"text",
"content":"Dana, this is the time you selected for our orientation. Please bring the notes I sent you.\r\n"
}
}
]
}