我正在尝试编写一个
的脚本我确信这是相当简单的,我在这里遇到的唯一问题是我不知道如何访问联系人的联系卡。
如何将strAddress
变量传递给olContactItem
对象?
编辑: 要改进这个问题 - 我不知道如何从csv文件中的电子邮件地址列表中查看现有user@mydomain.com的联系人(未添加到我的联系人列表或其他任何内容)
到目前为止我的代码:
Const olContactItem = 2
strEmail = "user@mydomain.com"
set fso = CreateObject("Scripting.FileSystemObject")
set appOutlook = CreateObject("Outlook.Application")
Set MyItem = appOutlook.CreateItem(olContactItem)
With MyItem
.Email1Address = strEmail
.jobTitle = strJobTitleVar
End With
我需要打开该人的地址簿页面,将“职务名称”和“显示名称”的值提取到相关变量中。但是,我被卡住了,因为我找到了一个点,我宁愿添加一个新联系人而不是查看现有人的信息。
这更清楚吗?如何在地址簿中搜索特定人员的信息?
答案 0 :(得分:0)
尝试以下几行。要查看其他属性及其DASL名称是什么,请使用OutlookSpy查看实时GAL对象:单击IAddrBook按钮并向下钻取容器层次结构或单击IMAPISession | QueryIdentity查看当前用户或(如果您有特定收件人的邮件)单击IMessage,转到GetRecipientTable表,双重收件人。
获得IMailUser窗口后,选择所需的属性并查看DASL编辑框。
Const olContactItem = 2
strEmail = "user@mydomain.com"
set fso = CreateObject("Scripting.FileSystemObject")
set appOutlook = CreateObject("Outlook.Application")
set NS = appOutlook.GetNamespace("MAPI")
NS.Logon
set Recip = NS.CreateRecipient(strEmail)
Recip.Resolve
set AE = Recip.AddressEntry
Set MyItem = appOutlook.CreateItem(olContactItem)
With MyItem
.Email1Address = strEmail
'read PR_TITLE property
.jobTitle = AE.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3A17001F")
结束
答案 1 :(得分:0)
回答我自己的问题 - 这似乎正在做我需要的一切:
strInputEmail = objInputFile.ReadLine
set appOutlook = CreateObject("Outlook.Application")
set objNameSpace = appOutlook.GetNameSpace("MAPI")
set objContacts = objNameSpace.GetDefaultFolder(olFolderContacts)
Set objContact = objContacts.Items.Find("[IMAddress] = """ & strInputEmail & """")
strFullName = objContact.FullName
strJobTitle = objContact.JobTitle
strBusinessAddress = objContact.BusinessAddress
msgBox strFullName & strJobTitle & strBusinessAddress
它读取输入文件,将电子邮件地址作为变量获取,找到该人,将特定信息作为变量获取。
无论如何,感谢您的帮助!