Microsoft Graph API创建回复草稿/直接回复功能异常求助
问题分析与解决方案
错误根源
你遇到的ErrorItemNotFound错误,核心原因是步骤1创建的草稿邮件ID,在步骤2发送后已经失效。发送草稿时,Graph API会将原草稿对象移除,同时在「已发送」文件夹生成新的已发送邮件对象,原草稿ID不再指向任何有效邮件,自然无法通过它调用回复接口。
修正步骤
步骤1:发送草稿并获取已发送邮件ID
执行发送请求后,Graph API会返回已发送邮件的完整对象,其中包含新的id字段,你需要保存这个新ID,替代步骤1的草稿ID:
curl --location --request POST 'https://graph.microsoft.com/v1.0/me/messages/{草稿ID}/send' \ --header 'authorization: Bearer TOKEN' \ --header 'content-type: application/json'
响应示例(提取其中的id):
{ "id": "新的已发送邮件ID", "subject": "From Postmen1", // 其他邮件字段... }
步骤2:使用已发送邮件ID调用回复接口
无论是创建回复草稿还是直接发送回复,都必须使用上述新的已发送邮件ID:
方法1:创建回复草稿(createReply)
curl --location --request POST 'https://graph.microsoft.com/v1.0/me/messages/{已发送邮件ID}/createReply' \ --header 'authorization: Bearer TOKEN' \ --header 'content-type: application/json' \ --data ''
方法2:直接发送回复(reply)
curl --location 'https://graph.microsoft.com/v1.0/me/messages/{已发送邮件ID}/reply' \ --header 'authorization: Bearer TOKEN' \ --header 'content-type: application/json' \ --data-raw '{ "comment": "Samantha, would you name the group please?" }'
注:调用reply时无需手动指定toRecipients,Graph会自动继承原邮件的收件人、添加Re:前缀的主题,以及线程关联信息,确保回复在同一邮件线程中显示。
关键注意事项
- 草稿邮件发送后,原草稿ID立即失效,必须使用已发送邮件的ID进行后续操作。
- 系统会自动维护邮件线程的关联信息,无需手动设置
ConversationId等字段,即可保证回复在同一线程中展示。
内容的提问来源于stack exchange,提问作者Hardik Masalawala
相关产品推荐
相关产品推荐

