如何通过Office JS判断Outlook新检查器窗口来自回复/转发操作
识别Outlook JS加载项中回复/转发触发的新邮件窗口
以下是几个可行的思路:
检查邮件的
itemClass属性
回复、转发类邮件的itemClass会有特定标识,可通过Office.context.mailbox.item.itemClass获取:- 普通回复:
IPM.Note.Reply - 全部回复:
IPM.Note.ReplyAll - 转发:
IPM.Note.Forward
手动新建的邮件itemClass为IPM.Note,通过这个差异可以直接判断是否为回复/转发操作触发的窗口。
- 普通回复:
调用
getOriginalItemAsync方法验证
回复或转发的邮件会关联原始邮件,可调用Office.context.mailbox.item.getOriginalItemAsync尝试获取原始邮件信息:Office.context.mailbox.item.getOriginalItemAsync(function(result) { if (result.status === Office.AsyncResultStatus.Succeeded) { // 存在原始邮件,说明是回复/转发操作 console.log("此窗口由回复/转发触发"); } else { // 无原始邮件,为手动新建邮件 console.log("此窗口为手动新建邮件"); } });这个方法可靠性较高,因为只有回复/转发的邮件才会有对应的原始邮件记录。
辅助判断:检查主题前缀
回复邮件的主题通常带有RE:前缀,转发邮件带有FW:(部分地区可能是FWD:),可通过读取Office.context.mailbox.item.subject判断:const subject = Office.context.mailbox.item.subject; if (subject.startsWith("RE:") || subject.startsWith("FW:") || subject.startsWith("FWD:")) { // 大概率是回复/转发操作 }注意:此方法存在局限性,用户可能手动修改主题前缀,仅建议作为辅助验证手段。
内容的提问来源于stack exchange,提问作者John Evans Solachuk
相关产品推荐
相关产品推荐

