Microsoft graph api 获取消息的MS graph API为已删除的消息返回无效的parentFolderId

Microsoft graph api 获取消息的MS graph API为已删除的消息返回无效的parentFolderId,microsoft-graph-api,Microsoft Graph Api,我的目标是确认用户删除的邮件确实已进入“已删除邮件”文件夹 我有一个订阅,通知我changeType=已删除。使用此订阅,我会收到如下通知- { u '@odata.type': u '#microsoft.graph.message', u '@removed': { u 'reason': u 'deleted' }, u 'id': u 'AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ4KiMeupd0KGRfRT

我的目标是确认用户删除的邮件确实已进入“已删除邮件”文件夹

我有一个订阅,通知我changeType=已删除。使用此订阅,我会收到如下通知-

{
    u '@odata.type': u '#microsoft.graph.message',
    u '@removed': {
        u 'reason': u 'deleted'
    },
    u 'id': u 'AAkALgAAAAAAHYQDEapmEc2byACqAC-EWg0AQ4KiMeupd0KGRfRTWvssWQAAZpGrnAAA'
}
然后,我获取这个消息id,并查询服务器以获取消息。我希望邮件中的父文件夹id会告诉我邮件是否已移动到“已删除邮件”文件夹

这个API成功了,我得到了消息对象的响应。但是,parentFolderId值无效-即,它与我从中获取的任何现有文件夹ID不匹配

有人面临过这样的问题吗? 收到删除通知后,我如何确认邮件确实已登录到“已删除邮件”中

谢谢你的帮助


谢谢。

您是否尝试使用该ID获取文件夹以验证其无效

我只是在这里做了一些测试,结果将取决于用户删除该项目的方式

如果他们只是按下“删除”(或使用用户界面中的删除按钮等),它将被移动到已删除的项目。在这种情况下,您会收到一个
deleted
通知,并且
parentFolderId
与已删除的项目一致

如果他们按SHIFT+DELETE,客户端将要求确认是否要“永久删除”该项目。如果它们设置了“已删除邮件保留”(默认情况下处于启用状态),那么它并不是真正的永久删除。它被复制到一个特殊的文件夹中,以便用户可以在配置的撤消周期内恢复它(我认为默认为30天)。在这种情况下,
parentFolderId
与此特殊文件夹一致。使用图形资源管理器,我在执行
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
}

您是否尝试使用该ID获取文件夹以验证其无效

我只是在这里做了一些测试,结果将取决于用户删除该项目的方式

如果他们只是按下“删除”(或使用用户界面中的删除按钮等),它将被移动到已删除的项目。在这种情况下,您会收到一个
deleted
通知,并且
parentFolderId
与已删除的项目一致

如果他们按SHIFT+DELETE,客户端将要求确认是否要“永久删除”该项目。如果它们设置了“已删除邮件保留”(默认情况下处于启用状态),那么它并不是真正的永久删除。它被复制到一个特殊的文件夹中,以便用户可以在配置的撤消周期内恢复它(我认为默认为30天)。在这种情况下,
parentFolderId
与此特殊文件夹一致。使用图形资源管理器,我在执行
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
}

我试试看。谢谢你的回答。我将尝试获取ID为的文件夹,并查看我得到了什么。我们所做的是在删除电子邮件之前获取所有文件夹的列表。这些ID中没有一个与我们在获取消息响应中得到的ID匹配。对。“删除”文件夹是一个系统文件夹,不是普通邮件层次结构的一部分。默认情况下,您不会在API返回的所有文件夹列表中看到它。这只显示邮件客户端可见的文件夹。我将尝试一下。谢谢您的回答。我将尝试获取ID为的文件夹,并查看我得到了什么。我们所做的是在删除电子邮件之前获取所有文件夹的列表。这些ID中没有一个与我们在获取消息响应中得到的ID匹配。对。“删除”文件夹是一个系统文件夹,不是普通邮件层次结构的一部分。默认情况下,您不会在API返回的所有文件夹列表中看到它。仅显示邮件客户端可见的文件夹。