使用Microsoft Graph PHP SDK移动邮件时缺失DestinationId参数求助
Microsoft Graph 邮件移动/复制功能 DestinationId 参数问题解决
你的错误是因为调用move接口时未传入必填的DestinationId参数,这个参数需要放在请求体中,而非URL路径里。以下是正确的实现方式:
移动邮件的正确代码
// 替换为你要移动到的目标文件夹ID $destinationFolderId = "目标文件夹ID"; // 构造请求体,传入DestinationId $requestBody = [ "DestinationId" => $destinationFolderId ]; // 调用move接口并附加请求体 $graph->createCollectionRequest("POST", "/users/xxx@xxxx.com/mailFolders/$inbox_id/childFolders/$folder_id/messages/$message_id/move") ->attachBody($requestBody) ->execute();
复制邮件的实现(类似逻辑)
如果要实现复制功能,只需将URL中的move替换为copy,请求体参数保持一致:
$graph->createCollectionRequest("POST", "/users/xxx@xxxx.com/mailFolders/$inbox_id/childFolders/$folder_id/messages/$message_id/copy") ->attachBody($requestBody) ->execute();
注意事项
DestinationId必须是有效的邮件文件夹ID(可通过/users/{user-id}/mailFolders接口获取所有文件夹ID)- 确保你的Graph客户端已申请
Mail.ReadWrite权限,否则会出现权限不足错误
内容的提问来源于stack exchange,提问作者Thierry Brunel
相关产品推荐
相关产品推荐

