我对逻辑应用相当陌生,我有一个应用,我正在尝试将电子邮件移动到共享邮箱中收件箱的子文件夹,但我正在尝试根据日期生成路径,并且我一生都无法让它工作。我不知道我的路径语法是错误的还是什么。
子文件夹结构基本上是
- Inbox
- 2018
- Jan
- Feb
- Mar
- Etc
我正在尝试使用字段的表达式部分根据年份和月份生成路径。我有一个表达式可以为我生成路径
concat('Inbox',formatDateTime(convertFromUtc(utcNow(),'Mountain Standard Time'),'MMM'),'',formatDateTime(convertFromUtc(utcNow(),'Mountain Standard Time'),'yyyy'))
当逻辑应用运行时,这会生成正确的路径字符串Inbox2018Jan
但在"移动电子邮件"操作运行时,它始终转义反斜杠,然后说它找不到文件夹Inbox\2018\Jan
。
所以我要么有这个格式错误,我不能把电子邮件放在一个子文件夹中,要么有另一种方法可以做到这一点。
我尝试使用文件夹选择器来选择月份子文件夹之一,然后查看代码,它使用一些 base64 编码的字符串作为路径。我已经粘贴了偷看的代码下面显示的内容
{
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['office365']['connectionId']"
}
},
"method": "post",
"path": "/Mail/Move/@{encodeURIComponent(triggerBody()?['Id'])}",
"queries": {
"folderPath": "Id::AAMkADRmOTgyMDI1LThkODYtNDMwYy1iYThiLTIzODQwN2Y1OGMzYQAuAAAAAAA6K3dJssnITb8NwkAsBOo7AQBaJ9ZTcg-MSoOEUUjjUdOAAAAD0nvYAAA="
},
"authentication": "@parameters('$authentication')"
},
"metadata": {
"Id::AAMkADRmOTgyMDI1LThkODYtNDMwYy1iYThiLTIzODQwN2Y1OGMzYQAuAAAAAAA6K3dJssnITb8NwkAsBOo7AQBaJ9ZTcg-MSoOEUUjjUdOAAAAD0nvYAAA=": "Jan"
}
}
有谁知道如何在不使用文件夹选择器的情况下将电子邮件移动到子文件夹?
编辑:自发布以来,我还尝试使用以下字符串,这些字符串也不起作用
Inbox/2018/Jan
Inbox:/2018/Jan
/Inbox/2018/Jan
在此特定逻辑应用中,你无法真正拥有层次结构文件夹结构方面的路径。
如果您查看 Office 365 邮件休息操作的文档 @
https://msdn.microsoft.com/office/office365/api/mail-rest-operations#MoveCopyMessages
您会注意到,要移动邮件,您实际需要的是文件夹ID。此外,如果查看逻辑应用设计器,则直接从那里选择一个文件夹,然后查看代码视图时,你将看到一个 ID。它看起来像
"method": "post",
"path": "/Mail/Move/@{encodeURIComponent(triggerBody()?['Id'])}",
"queries": {
"folderPath": "Id::AAMkADZmZDQ5OWNhLTU3NzQtNDRlZC1iMDRlLTg5NTA1NGM3NWJlZgAuAAAAAAAhZj7Qt8LySYhKvlgbXRNVAQBT8bGPBJK8Qqoy01hgwH4rAAEJysaQAAA="
}
},
"metadata": {
"Id::AAMkADZmZDQ5OWNhLTU3NzQtNDRlZC1iMDRlLTg5NTA1NGM3NWJlZgAuAAAAAAAhZj7Qt8LySYhKvlgbXRNVAQBT8bGPBJK8Qqoy01hgwH4rAAEJysaQAAA=": "Jan"
},
文件夹 ID 对于每个文件夹都是唯一的。查找文件夹的文件夹 ID 的一种简单方法是使用
https://developer.microsoft.com/en-us/graph/graph-explorer#
并在登录后,发布
https://graph.microsoft.com/beta/me/mailFolders/Inbox/childFolders
作为将为您提供收件箱子文件夹的查询,每个文件夹的值将如下所示
"value": [
{
"id": "AAMkADZmZDQ5OWNhLTU3NzQtNDRlZC1iMDRlLTg5NTA1NGM3NWJlZgAuAAAAAAAhZj7Qt8LySYhKvlgbXRNVAQBT8bGPBJK8Qqoy01hgwH4rAAEJysWPAAA=",
"displayName": "AZCommunity",
"parentFolderId": "AAMkADZmZDQ5OWNhLTU3NzQtNDRlZC1iMDRlLTg5NTA1NGM3NWJlZgAuAAAAAAAhZj7Qt8LySYhKvlgbXRNVAQDX8XL9o4tkR5vF5sEdh44eAIYnQnhhAAA=",
"childFolderCount": 0,
"unreadItemCount": 5,
"totalItemCount": 169,
"wellKnownName": null
},
对于您尝试执行的操作,您必须执行其他工作以将文件夹映射到文件夹 ID,然后使用该 ID 进行分配。我建议使用 Azure Functions 轻松做到这一点。