以下是与Microsoft Exchange集成相关的问题。
我正在调用Microsoft Exchange服务方法ResolveName (string)
:
我传递的是用户名,例如myusername
,我收到两个匹配项 - 与用户名myusername
匹配,另一个与myusername2
匹配。
现在的问题是:是否有可能进行仅返回直接匹配的调用,以便仅返回与确切用户名匹配的内容?
以下是代码: :
var service = Service.GetService();
username = Regex.Replace(username, ".*\\\\(.*)", "$1", RegexOptions.None);
var resolvedNames = service.ResolveName(username);
foreach (var resolvedName in resolvedNames)
{
mailboxname = resolvedName.Mailbox.Address;
}
答案 0 :(得分:0)
该方法实际上解析了电子邮件地址,因此要完全匹配,您需要执行类似的操作。
string username = "myUserName";
string domain = "myDomain.com";
string emailAddress = username + "@" + domain;
NameResolutionCollection resolvedContactList = _service.ResolveName(emailAddress);
答案 1 :(得分:0)
如果你不能在myusername
之外指定'用户名'(因为Amicable的答案假设你可以做),那么唯一要做的就是在再次匹配的ResolveName周围写一个包装器针对您的搜索字符串的所有结果,这次需要完全匹配。
为此,您必须再次解析域名,因为您获得了.Mailbox.Address
中返回的完整主SMTP电子邮件地址。
我在Delphi代码中做的完全相同; - )