如何在撰写模式下使用Office-JS/EWS获取回复/转发项的itemId
在Outlook撰写模式下获取回复/转发目标项的ItemId方法
使用Office-JS实现(推荐)
在回复、全部回复或转发的撰写窗口中,Office-JS提供了直接获取原始目标项ItemId的方式:
- 借助
Office.context.mailbox.item.originalItemId属性,该属性仅在回复/转发场景下存在,新建邮件时返回null。 - 示例代码:
// 判断当前场景是否支持获取原始项ID if (Office.context.mailbox.item.originalItemId) { const targetItemId = Office.context.mailbox.item.originalItemId; console.log("目标项ItemId:", targetItemId); // 这里可以添加后续业务逻辑 } else { console.log("当前窗口不是回复/转发场景,无法获取原始项ID"); }
- 权限要求:加载项清单中需配置
Mailbox权限,最低设置为ReadItem级别,确保能访问相关属性。
使用EWS实现(备选方案)
如果必须通过EWS获取,步骤相对繁琐,需要先关联当前草稿与原始项:
- 先获取当前回复/转发草稿的ItemId:
const draftItemId = Office.context.mailbox.item.itemId;
- 通过Office-JS的
makeEwsRequestAsync方法调用EWS的GetItem操作,获取草稿的ConversationId或In-Reply-To邮件头信息。 - 再通过
FindItem操作,基于ConversationId或InternetMessageId(从In-Reply-To提取)定位到原始目标项,进而获取其ItemId。
这种方式需要熟悉EWS的请求格式,且依赖服务器端权限,一般优先推荐Office-JS的直接方案。
内容的提问来源于stack exchange,提问作者Jean Paul Larach
相关产品推荐
相关产品推荐

