Outlook Web Add-in:Web服务器不可用时itemSend事件禁用邮件发送问题咨询
Outlook Web Add-in itemSend事件服务器不可用时阻止邮件发送问题解答
官方已知状态
- 微软明确知晓该问题,当前的阻止行为是Office.js加载项的默认故障安全机制:当加载项依赖的后端服务无法访问时,Outlook会中断依赖该加载项事件的操作(包括
itemSend),初衷是避免加载项逻辑不完整引发的邮件处理风险,但未充分考虑企业级场景下的业务连续性需求。
临时缓解方案
- 给
itemSend事件回调添加超时兜底逻辑,确保服务不可达时自动放行邮件发送,示例代码:
Office.context.mailbox.item.addHandlerAsync(Office.EventType.ItemSend, (eventArgs) => { let serverCheckDone = false; // 设置3秒超时,超时后强制允许发送 const timeoutId = setTimeout(() => { if (!serverCheckDone) { eventArgs.completed({ allowEvent: true }); } }, 3000); // 调用后端检查服务 fetch('https://your-backend-service.com/validate-email') .then(res => { clearTimeout(timeoutId); serverCheckDone = true; // 执行邮件内容检查逻辑,根据结果设置allowEvent eventArgs.completed({ allowEvent: true }); }) .catch(err => { clearTimeout(timeoutId); serverCheckDone = true; // 服务不可达时直接允许发送 eventArgs.completed({ allowEvent: true }); }); });
- 企业租户可通过Office 365管理中心调整加载项故障策略,部分租户已支持配置“加载项不可用时允许基础邮件操作”,具体可在加载项管理的高级设置中查找。
官方修复进度
- 该问题已被纳入微软365 2024年Q3的优化计划,目标是提供管理员可配置的事件故障处理规则,允许选择加载项不可用时是否阻止邮件发送。目前部分预览租户已开放相关配置,预计Q3末完成全量推送。
内容的提问来源于stack exchange,提问作者Al_C
相关产品推荐
相关产品推荐

