中找到Exchange用户的电子邮件地址),但是在我们公司中,存在许多不符合的用户 ,对于那些,第一个和第二个名字是相同的,但是(当然)他们有不同的电子邮件,用户ID等...
当我解决我的名字(例如“ Pinco Pallino”)时,如果确实存在多个“ Pinco Pallino”,Myrecipient.resolved return false(没有一个结果)
您可以建议我一种(让我说)作为一个(或全部)所找到的用户的funztion的结果吗? thanks从链接中编码:
Function lookupEmail(name)
lookupEmail = ""
Dim objApp As New Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myRecipient As Outlook.recipient
Set myNamespace = objApp.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient(name)
myRecipient.Resolve
If myRecipient.Resolved Then
lookupEmail = GetSMTPAdress(myRecipient)
End If
End Function
Function GetSMTPAdress(recipient As Outlook.recipient)
Dim pa As Outlook.PropertyAccessor
Const PR_SMTP_ADDRESS As String = _
"http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
Set pa = recipient.PropertyAccessor
GetSMTPAdress = pa.GetProperty(PR_SMTP_ADDRESS)
End Function
outlook对象模型不会让您搜索多个匹配:它可以找到唯一的匹配项,或者如果没有找到匹配项,或者存在一个以上的行进,则返回错误。
在扩展的MAPI级别(仅C ++或Delphi)中,您可以在特定搜索容器的内容表(例如GAL)的内容表上创建
PR_ANR
PR_ANR
限制。如果发现多个匹配项,它将显示一个带有列表的对话框。如果有一个匹配项,则将其返回并停止搜索,否则它将继续到搜索路径中的下一个容器。
如果使用REDEMPTION
(我是它的作者 - 任何语言)是一种选项,它将展示RDOADDRESSBOOK
.INGandrdoAddresslist.
ResolveNameEx
,它返回了匹配列表。
在vb脚本:
ResolveNameEx