如何在Outlook Add-ins中判断邮箱地址是否属于组织内外?
在Outlook Add-ins中判断邮箱内部/外部的方法
内置函数解决方案
Office.js 提供了直接的内置方法来判断目标邮箱是否属于当前用户的组织,完美解决多域名场景的问题,无需手动校验域名:
使用 Office.context.mailbox.isSameOrganization() 方法,该方法基于 Exchange 组织的身份信息进行验证,而非单纯域名匹配,所以不管组织有多少个关联域名都能准确判断。
代码示例
// 要判断的目标邮箱地址 const targetEmail = "user@example.org"; // 调用内置方法执行判断 Office.context.mailbox.isSameOrganization(targetEmail, (result) => { if (result.status === Office.AsyncResultStatus.Succeeded) { const isInternal = result.value; if (isInternal) { console.log("该邮箱属于组织内部"); } else { console.log("该邮箱属于外部"); } } else { console.error("判断失败:" + result.error.message); } });
旧版本兼容方案(若内置方法不可用)
如果你的插件需要兼容不支持 isSameOrganization 的旧版 Outlook(如 2016 及更早版本),可以通过以下方式实现:
- 调用
Office.context.mailbox.getUserIdentityTokenAsync()获取当前用户的身份令牌(JWT 格式),解析出其中的tid(租户/组织 ID) - 通过 EWS(Exchange Web Services)的
ResolveNames操作查询目标邮箱的租户 ID - 对比两个租户 ID,一致则为内部邮箱,否则为外部
这种方法需要额外处理令牌解析和 EWS 请求,复杂度较高,优先推荐使用内置方法。
内容的提问来源于stack exchange,提问作者Mokh Akh
相关产品推荐
相关产品推荐

