命名空间:microsoft.graph
获取登录用户的邮箱(包括“已删除邮件”和“待筛选邮件”文件夹)中的邮件。
根据页面大小和邮箱数据,从邮箱中获取邮件可能会引发多个请求。 默认页面大小为 10 封邮件。 使用
$top
以自定义页面大小(范围在 1 - 1000 之间)。
若要改进操作响应时间,请使用
$select
指定所需的精确属性;请参阅下方
示例 1
。 微调
$select
和
$top
的值,尤其在必须使用较大的页面大小时,因为返回带有数百条邮件(且每条邮件都有完整的响应有效负载) 的页面可能触发
网关超时
(HTTP 504)。
若要获取下一页的邮件,只需将
@odata.nextLink
中返回的整个 URL 应用于下一个 get-messages 请求。 此 URL 包括可能已在初始请求中指定的任何查询参数。
不要尝试从
@odata.nextLink
URL 中提取
$skip
值来操纵响应。 此 API 使用
$skip
值来保留其已在用户邮箱中遍历的所有项的计数,以返回 message-type 项的页面。 因此,甚至在初始响应中,
$skip
值都会大于页面大小。 有关详细信息,请参阅
在应用中对 Microsoft Graph 数据进行分页
。
目前,此操作返回纯 HTML 格式的邮件正文。
在以下两种情况下,应用可以获取其他用户的邮件文件夹中的邮件:
如果该应用具有应用程序权限,或者
如果应用具有来自某个用户的相应委派
权限
,而另一个用户与该用户共享了邮件文件夹,或者已为该用户授予委派的访问权限。 请参阅
详细信息和示例
。
注意
:请注意
已知问题
,即此操作在自己的响应中包含 Microsoft Teams 聊天消息。
调用此 API 需要以下权限之一。 若要了解详细信息,包括如何选择权限的信息,请参阅
权限
。
权限(从最低特权到最高特权)
GET /me/mailFolders/{id}/messages
GET /users/{id | userPrincipalName}/mailFolders/{id}/messages
可选的查询参数
此方法支持 OData 查询参数 来帮助自定义响应。
在同一查询中使用 filter 和 orderby
在同一查询中使用 $filter
和 $orderby
获取消息时,请确保按以下方式指定属性:
$orderby
中显示的属性也必须在 $filter
中显示。
$orderby
中显示的属性与 $filter
中属性的顺序相同。
$orderby
中存在的属性显示在 $filter
中不存在的任意属性之前。
无法进行此项操作时会导致下列错误:
错误代码:InefficientFilter
错误消息:The restriction or sort order is too complex for this operation.
// Code snippets are only available for the latest version. Current version is 5.x
var graphClient = new GraphServiceClient(requestAdapter);
var result = await graphClient.Me.Messages.GetAsync((requestConfiguration) =>
requestConfiguration.QueryParameters.Select = new string []{ "sender","subject" };
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
MessageCollectionPage messages = graphClient.me().messages()
.buildRequest()
.select("sender,subject")
.get();
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphusers "github.com/microsoftgraph/msgraph-sdk-go/users"
//other-imports
graphClient, err := msgraphsdk.NewGraphServiceClientWithCredentials(cred, scopes)
requestParameters := &graphusers.ItemMessagesRequestBuilderGetQueryParameters{
Select: [] string {"sender","subject"},
configuration := &graphusers.ItemMessagesRequestBuilderGetRequestConfiguration{
QueryParameters: requestParameters,
result, err := graphClient.Me().Messages().Get(context.Background(), configuration)
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestConfiguration = new MessagesRequestBuilderGetRequestConfiguration();
$queryParameters = MessagesRequestBuilderGetRequestConfiguration::createQueryParameters();
$queryParameters->select = ["sender","subject"];
$requestConfiguration->queryParameters = $queryParameters;
$result = $graphServiceClient->me()->messages()->get($requestConfiguration);
// THE PYTHON SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
client = GraphServiceClient(request_adapter)
query_params = MessagesRequestBuilder.MessagesRequestBuilderGetQueryParameters(
select = ["sender","subject"],
request_configuration = MessagesRequestBuilder.MessagesRequestBuilderGetRequestConfiguration(
query_parameters = query_params,
result = await client.me.messages.get(request_configuration = request_configuration)
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('bb8775a4-4d8c-42cf-a1d4-4d58c2bb668f')/messages(sender,subject)",
"value": [
"@odata.etag": "W/\"CQAAABYAAADHcgC8Hl9tRZ/hc1wEUs1TAAAwR4Hg\"",
"id": "AAMkAGUAAAwTW09AAA=",
"subject": "You have late tasks!",
"sender": {
"emailAddress": {
"name": "Microsoft Planner",
"address": "noreply@Planner.Office365.com"