创建 mailSearchFolder
命名空间:microsoft.graph
在指定的用户的邮箱中创建新的 mailSearchFolder。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
Mail.ReadWrite |
| 委派(个人 Microsoft 帐户) |
Mail.ReadWrite |
| 应用程序 |
Mail.ReadWrite |
HTTP 请求
POST /me/mailFolders/{id}/childFolders
POST /users/{id | userPrincipalName}/mailFolders/{id}/childFolders
在查询 URL 中将父文件夹指定为文件夹 ID 或已知文件夹名称。 有关受支持的已知文件夹名称的列表,请参阅 mailFolder 资源类型。
| 标头 |
值 |
| 授权 |
Bearer {token}. 必需。 |
| Content-Type |
application/json. 必需。 |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
| 参数 |
类型 |
说明 |
| @odata.type |
String |
要创建的文件夹的类型。 设置为"microsoft.graph.mailSearchFolder"。 |
| displayName |
String |
新文件夹的显示名称。 |
| includeNestedFolders |
布尔 |
指示如何在搜索中遍历邮箱文件夹层次结构。 true 意味着应该执行深层搜索,以在 sourceFolderIds 中显式指定的每个文件夹的层次结构中包括子文件夹。 false 表示仅对 sourceFolderIds 中显式指定的每个文件夹进行浅表搜索。 |
| sourceFolderIds |
String 集合 |
应缩小的邮箱文件夹。 |
| filterQuery |
String |
用于筛选邮件的 OData 查询。 |
响应
如果成功,此方法在响应正文中返回 响应代码和 201 Created mailSearchFolder 对象。
示例
请求
下面是请求的一个示例 - 它将创建主题中包含字符串"weekly digest"的邮件的搜索文件夹。 搜索文件夹位于应用指定筛选器查询的同一文件夹下。
POST https://graph.microsoft.com/v1.0/me/mailfolders/AQMkADYAAAIBDAAAAA==/childfolders
Content-type: application/json
{
"@odata.type": "microsoft.graph.mailSearchFolder",
"displayName": "Weekly digests",
"includeNestedFolders": true,
"sourceFolderIds": ["AQMkADYAAAIBDAAAAA=="],
"filterQuery": "contains(subject, 'weekly digest')"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var mailFolder = new MailSearchFolder
{
DisplayName = "Weekly digests",
IncludeNestedFolders = true,
SourceFolderIds = new List<String>()
{
"AQMkADYAAAIBDAAAAA=="
},
FilterQuery = "contains(subject, 'weekly digest')"
};
await graphClient.Me.MailFolders["{mailFolder-id}"].ChildFolders
.Request()
.AddAsync(mailFolder);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const mailFolder = {
'@odata.type': 'microsoft.graph.mailSearchFolder',
displayName: 'Weekly digests',
includeNestedFolders: true,
sourceFolderIds: ['AQMkADYAAAIBDAAAAA=='],
filterQuery: 'contains(subject, \'weekly digest\')'
};
await client.api('/me/mailfolders/AQMkADYAAAIBDAAAAA==/childfolders')
.post(mailFolder);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/me/mailfolders/AQMkADYAAAIBDAAAAA==/childfolders"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphMailFolder *mailFolder = [[MSGraphMailFolder alloc] init];
[mailFolder setDisplayName:@"Weekly digests"];
[mailFolder setIncludeNestedFolders: true];
NSMutableArray *sourceFolderIdsList = [[NSMutableArray alloc] init];
[sourceFolderIdsList addObject: @"AQMkADYAAAIBDAAAAA=="];
[mailFolder setSourceFolderIds:sourceFolderIdsList];
[mailFolder setFilterQuery:@"contains(subject, 'weekly digest')"];
NSError *error;
NSData *mailFolderData = [mailFolder getSerializedDataWithError:&error];
[urlRequest setHTTPBody:mailFolderData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
MailSearchFolder mailFolder = new MailSearchFolder();
mailFolder.displayName = "Weekly digests";
mailFolder.includeNestedFolders = true;
LinkedList<String> sourceFolderIdsList = new LinkedList<String>();
sourceFolderIdsList.add("AQMkADYAAAIBDAAAAA==");
mailFolder.sourceFolderIds = sourceFolderIdsList;
mailFolder.filterQuery = "contains(subject, 'weekly digest')";
graphClient.me().mailFolders("AQMkADYAAAIBDAAAAA==").childFolders()
.buildRequest()
.post(mailFolder);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewMailFolder()
displayName := "Weekly digests"
requestBody.SetDisplayName(&displayName)
requestBody.SetAdditionalData(map[string]interface{}{
"@odata.type": "microsoft.graph.mailSearchFolder",
"includeNestedFolders": true,
"sourceFolderIds": []String {
"AQMkADYAAAIBDAAAAA==",
}
"filterQuery": "contains(subject, 'weekly digest')",
}
mailFolderId := "mailFolder-id"
result, err := graphClient.Me().MailFoldersById(&mailFolderId).ChildFolders().Post(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.Mail
$params = @{
"@odata.type" = "microsoft.graph.mailSearchFolder"
DisplayName = "Weekly digests"
IncludeNestedFolders = $true
SourceFolderIds = @(
"AQMkADYAAAIBDAAAAA=="
)
FilterQuery = "contains(subject, 'weekly digest')"
}
# A UPN can also be used as -UserId.
New-MgUserMailFolderChildFolder -UserId $userId -MailFolderId $mailFolderId -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('68ca8ec0-11f8-456b-a785-70d9936650d5')/mailFolders('AQMkADYAAAIBDAAAAA%3D%3D')/childFolders/$entity",
"@odata.type": "#microsoft.graph.mailSearchFolder",
"id": "AAMkADYfRAAAZg1yTAAA=",
"displayName": "Weekly digests",
"parentFolderId": "AQMkADYAAAIBDAAAAA==",
"childFolderCount": 0,
"unreadItemCount": 0,
"totalItemCount": 0,
"isSupported": true,
"includeNestedFolders": true,
"sourceFolderIds": [
"AQMkADYAAAIBDAAAAA=="
],
"filterQuery": "contains(subject, 'weekly digest')"
}