【问题标题】:MS graph API to get message returns invalid parentFolderId for a deleted message用于获取消息的 MS 图形 API 返回已删除消息的无效 parentFolderId
【发布时间】:2020-01-10 09:38:31
【问题描述】:

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

我有一个订阅通知我 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 都不匹配

有人遇到过这样的问题吗? 收到删除通知后,如何确认邮件确实已进入“已删除邮件”

感谢所有帮助。

谢谢。

【问题讨论】:

    标签: microsoft-graph-api


    【解决方案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
    }
    

    【讨论】:

    • 我会试一试的。
    • 感谢您的回答。我将尝试获取带有 ID 的文件夹,看看我得到了什么。我们所做的是在删除电子邮件之前获取所有文件夹的列表。而且这些 id 都与我们在获取消息响应中获得的 ID 不匹配。
    • 对。删除文件夹是系统文件夹,不是正常邮件层次结构的一部分。默认情况下,您不会在 API 返回的所有文件夹列表中看到它。这仅显示邮件客户端可见的文件夹。
    猜你喜欢
    • 2021-02-10
    • 2015-02-18
    • 2015-06-30
    • 1970-01-01
    • 2018-11-03
    • 1970-01-01
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多