如何获取已删除邮件的OWA webLink?Microsoft Graph API技术问询
获取已删除邮件的OWA WebLink解决方案
我之前也碰到过类似的问题,其实核心原因是:已删除的邮件不再存放在默认的/me/messages路径对应的文件夹里,而是被移到了**Deleted Items(已删除邮件)**文件夹,所以直接调用原路径自然会返回ErrorItemNotFound错误。
下面给你两种可行的解决方法:
方法一:通过Graph API获取完整属性(推荐)
调整API请求路径,明确指向已删除邮件文件夹,就能拿到包含webLink的完整邮件信息:
GET https://graph.microsoft.com/v1.0/me/mailFolders/deleteditems/messages/<the_id>
成功请求后,返回的响应里就会包含你需要的webLink字段,示例格式如下:
{ "id": "<你的邮件ID>", "webLink": "https://outlook.office.com/owa/?ItemID=<编码后的邮件ID>&exvsurl=1&viewmodel=ReadMessageItem", // 其他邮件属性... }
方法二:手动构造OWA链接(可选)
如果不想额外调用API,也可以直接按固定格式构造OWA链接,通用模板是:
https://outlook.office.com/owa/?ItemID=<邮件原始ID>&exvsurl=1&viewmodel=ReadMessageItem
⚠️ 注意:这里的<邮件原始ID>必须是Graph API返回的原始ID(无需额外编码),但这种方法不如API获取可靠——微软可能会调整OWA的链接格式,长期来看还是用API获取更稳妥。
特殊情况说明
如果调用/me/mailFolders/deleteditems/messages/<the_id>仍然返回ErrorItemNotFound,那说明该邮件已经被永久删除(比如用户清空了已删除邮件文件夹,或者超过了组织的邮件保留期限),这种情况下确实无法再获取到它的webLink了。
你之前收到的错误响应:
{ "error": { "code": "ErrorItemNotFound", "message": "The specified object was not found in the store., The process failed to get the correct properties.", "innerError": { "request-id": "x-x-x-x", "date": "2018-04-17T00:00:00..." } } }本质就是请求路径没有指向已删除邮件文件夹导致的。
内容的提问来源于stack exchange,提问作者Savageman
相关产品推荐
相关产品推荐

