如何使用 Microsoft Graph Java SDK 移动邮件到指定文件夹

Hongxing Xie 25 信誉分
2025-04-01T06:13:10.4166667+00:00

我要使用 Microsoft Graph Java SDK 移动邮件到指定文件夹,我使用了如下代码:

    `MovePostRequestBody movePostRequestBody = new MovePostRequestBody();`

movePostRequestBody.setDestinationId("fail");

appClient.users().byUserId(userEmail)

.messages().byMessageId(messageId)

.move()

.post(movePostRequestBody);
结果报错,报错信息如下:
com.microsoft.graph.models.odataerrors.ODataError: Id is malformed.
请问要怎么处理

Microsoft Graph
Microsoft Graph
一种 Microsoft 可编程性模型,用于公开 REST API 和客户端库以访问 Microsoft 365 服务上的数据。
90 个问题
0 个注释 无注释
{count} 票

1 个答案

排序依据: 最新
  1. CarlZhao-MSFT 46,366 信誉分
    2025-04-01T09:54:40.0733333+00:00

    嗨 @Hongxing Xie

    该错误通常意味着目标文件夹不存在,因此请确保 "fail" 文件夹存在于您的邮箱。为了更准确的指定文件夹,我建议您使用文件夹的 ID 而不是名称。

    以下代码段能够为我工作:

    . . . . . .
            final GraphServiceClient graphClient = new GraphServiceClient(credential, scopes);
    
    // Code snippets are only available for the latest version. Current version is 6.x
            com.microsoft.graph.users.item.messages.item.move.MovePostRequestBody movePostRequestBody = new com.microsoft.graph.users.item.messages.item.move.MovePostRequestBody();
            movePostRequestBody.setDestinationId(destinationId);
            var result = graphClient.users().byUserId(userId).messages().byMessageId(messageId).move().post(movePostRequestBody);
    

    用户的图像

    不过请注意,当您将邮件移动到其他文件夹后,邮件 ID 将发生改变,它会生成一个新的 ID 并删除原始 ID。如果您希望邮件 ID 在其生命周期内不会发生改变,那么您可以尝试使用邮件的不可变 ID:https://learn.microsoft.com/en-us/graph/outlook-immutable-id.


    如果答案对您有帮助,请点击“接受答案”并点赞。如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想收到该主题的相关电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知。


你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。