gpt4 book ai didi

c# - 使用 Exchange Web 服务 API 确定邮箱是否存在

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:43 24 4
gpt4 key购买 nike

使用 Exchange Web 服务 API,是否可以确定组织中是否存在诸如 someone@mydomain.com 之类的邮箱/电子邮件地址?

如果是这样,哪种方法最简单,是否可以不使用模拟?

案例:一个 Windows 服务定期向组织内的人员发送电子邮件。它对他们的电子邮件地址没有任何明确的了解。它只知道他们的用户名,并假定他们的电子邮件地址是用户名@mydomain.com。除了少数没有邮箱的用户外,所有用户都是如此。在这些情况下,它不应首先尝试发送电子邮件。

解决方案:

根据 mathieu 的建议:改为在 Active Directory 中查找用户和电子邮件地址。这个函数完成了工作:

using System.DirectoryServices.AccountManagement;
// ...

public static bool TryGetUserEmailAddress(string userName, out string email)
{
using (PrincipalContext domainContext =
new PrincipalContext(ContextType.Domain, Environment.UserDomainName))
using (UserPrincipal user =
UserPrincipal.FindByIdentity(domainContext, userName))
{
if (user != null && !string.IsNullOrWhiteSpace(user.EmailAddress))
{
email = user.EmailAddress;
return true;
}
}
email = null;
return false; // user not found or no e-mail address specified
}

最佳答案

确定用户是否只有 EWS 邮箱可能比预期的要复杂,尤其是在没有模拟的情况下。

如果您在 Active Directory 域中,您应该依靠 DirectoryEntry 信息来确定用户的邮箱,并相应地发送电子邮件。如果您获得了用户登录名,那么获取关联的 DirectoryEntry 真的很容易。

关于c# - 使用 Exchange Web 服务 API 确定邮箱是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627283/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com