我的目标是确认用户删除的邮件确实已进入“已删除邮件”文件夹。
我有一个订阅,通知我changeType =已删除。订阅后,我会收到这样的通知-
{
u '@odata.type': u '#microsoft.graph.message',
u '@removed': {
u 'reason': u 'deleted'
},
u 'id': u 'AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ4KiMeupd0KGRfRTWvssWQAAZpGrnAAA'
}
然后我获取此消息ID,并查询服务器以获取消息。我希望邮件中的父文件夹ID可以告诉我邮件是否已移至“已删除邮件”文件夹
https://graph.microsoft.com/v1.0/me/messages/AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ4KiMeupd0KGRfRTWvssWQAAZpGrnAAA
此API成功执行,并且收到消息对象的响应。但是parentFolderId值无效-即它与我从https://graph.microsoft.com/v1.0/me/mailFolders
获取的任何现有文件夹ID不匹配有人遇到过这样的问题吗? 收到删除通知后,如何确认邮件确实已进入“已删除邮件”
感谢所有帮助。
谢谢。
答案 0 :(得分:1)
您是否尝试过使用该ID来获取文件夹以确认其无效?
我只是在这里进行了一些测试,结果取决于用户删除项目的方式。
如果他们只是按下“删除”(或使用UI中的删除按钮等),它将被移至“已删除邮件”。在这种情况下,您会收到deleted
通知,并且parentFolderId
与“已删除邮件”一致。
如果他们按SHIFT + DELETE,则客户端会询问您是否要“永久删除”该项目。如果将它们设置为保留已删除项目(默认情况下处于启用状态),则不会真正真正永久删除它们。它已复制到一个特殊的文件夹中,以便用户可以在配置的撤消期限(我认为默认值为30天)内将其还原。在这种情况下,parentFolderId
与此特殊文件夹重合。使用Graph Explorer,在执行GET /me/mailfolders/{id}
时会看到以下内容:
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('deeb074f-40b0-4a1f-a471-7baab44c0026')/mailFolders/$entity",
"id": "AQMkAGUyN2I4N2RlLTEzMTAtNDBmYy1hODdlLTY2ADU0MDgxNjBhMGYALgAAAzYn1Af8O8xErekG37ysDqcBAK48gWNswSROgdxWdCKszmoAAAIBHQAAAA==",
"displayName": "Deletions",
"parentFolderId": "AQMkAGUyN2I4N2RlLTEzMTAtNDBmYy1hODdlLTY2ADU0MDgxNjBhMGYALgAAAzYn1Af8O8xErekG37ysDqcBAK48gWNswSROgdxWdCKszmoAAAIBGwAAAA==",
"childFolderCount": 0,
"unreadItemCount": 1,
"totalItemCount": 1
}