如何使用Outlook Add-in Javascript API为邮件添加标记或通知消息?
需求实现说明
你需要的给邮件添加标记、自定义信息通知的效果完全可以通过Outlook JavaScript API实现,两类需求分别对应不同的官方接口:
一、邮件后续标记(Flag)实现
适用版本要求:Outlook JavaScript API v1.8及以上
需要提前在插件清单中配置最低API版本为1.8,且授予至少ReadWriteItem权限。
操作代码示例:
// 为当前打开/选中的邮件添加标记 const currentMail = Office.context.mailbox.item; const flagParams = { flagStatus: Office.MailboxEnums.FlagStatus.flagged, startDate: new Date(), dueDate: new Date(Date.now() + 86400000), // 1天后到期 reminderTime: new Date(Date.now() + 7200000) // 2小时后触发提醒 }; currentMail.flag.setAsync(flagParams, (res) => { if (res.status === Office.AsyncResultStatus.Succeeded) { // 标记设置成功后执行对应逻辑 } else { console.error('标记设置失败:', res.error.message); } });
需要清除标记时直接调用currentMail.flag.clearAsync()即可完成操作。
二、邮件内联信息通知(对应你示例图的效果)实现
适用版本要求:Outlook JavaScript API v1.13及以上
该接口可以在邮件正文顶部添加自定义通知条,支持自定义文案、图标、显示时效,和你提供的示例图效果完全一致。
操作代码示例:
// 给当前邮件添加自定义通知 const noticeId = "custom_business_notice_01"; const noticeConfig = { type: Office.MailboxEnums.ItemNotificationMessageType.InsightMessage, message: "该邮件已同步至内部业务系统,编号:BIZ202405010001", icon: "NotificationIcon", // 需和插件清单中声明的16*16图标ID对应 persistent: true // 设为true时通知会长期绑定在该邮件上,刷新页面也不会消失 }; Office.context.mailbox.item.notificationMessages.addAsync(noticeId, noticeConfig, (res) => { if (res.status === Office.AsyncResultStatus.Succeeded) { // 通知添加成功后执行对应逻辑 } else { console.error('通知添加失败:', res.error.message); } });
需要移除通知时调用Office.context.mailbox.item.notificationMessages.removeAsync(noticeId)即可完成操作。
注意事项
- 如果需要对邮件列表中的多封邮件批量操作,可调用
Office.context.mailbox.getSelectedItemsAsync()获取选中的多封邮件实例后循环处理 - 不同端的Outlook支持的API版本有差异,建议在清单中声明对应API的需求集,避免低版本客户端出现兼容问题
- 修改邮件属性的操作需要插件获取足够的权限,建议在清单中配置
ReadWriteMailbox权限满足全场景需求
内容的提问来源于stack exchange,提问作者Margie
相关产品推荐
相关产品推荐

