Outlook Add-in开发:如何获取邮件的重要性级别?
在Outlook JavaScript插件的ItemSend事件中获取邮件重要性级别
你需要通过Message对象的importance属性来获取邮件重要性,这个属性在Outlook JS API中是存在的,以下是具体实现步骤和代码示例:
实现步骤
- 确保插件清单文件中配置了足够的权限(比如
ReadWriteMailbox或ReadMailbox),否则无法读取邮件属性。 - 注册
ItemSend事件监听,在回调中通过异步方法获取邮件的importance属性。
代码示例
// 注册ItemSend事件 Office.context.mailbox.addHandlerAsync(Office.EventType.ItemSend, handleItemSend, (result) => { if (result.status !== Office.AsyncResultStatus.Succeeded) { console.error('事件注册失败: ' + result.error.message); return; } }); // ItemSend事件处理函数 function handleItemSend(event) { const message = event.item; // 异步获取重要性属性 message.getAsync('importance', (result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { const importance = result.value; // importance的取值为'low'/'normal'/'high' console.log('当前邮件重要性:', importance); // 这里可以添加你的业务逻辑,比如根据重要性做校验 // 如果需要阻止邮件发送,调用event.completed({ allowEvent: false }); } else { console.error('获取重要性失败: ' + result.error.message); } // 必须调用此方法完成事件处理,否则会阻塞发送流程 event.completed(); }); }
注意事项
getAsync是异步操作,必须在回调函数内处理返回结果,不能直接同步读取属性。- 无论是否成功获取属性,都要调用
event.completed(),否则Outlook会一直等待事件处理完成,导致邮件无法发送。
内容的提问来源于stack exchange,提问作者Rachel
相关产品推荐
相关产品推荐

