获取特定电子邮件地址的联系信息

时间:2013-11-27 14:35:30

标签: vbscript outlook

我正在尝试编写一个

的脚本
  1. 查看我的域中的电子邮件地址列表
  2. 对于每封电子邮件,我们都会获取显示名称和职位名称
  3. 将电子邮件,显示名称,职位名称输出到csv文件
  4. 我确信这是相当简单的,我在这里遇到的唯一问题是我不知道如何访问联系人的联系卡。

    如何将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
    

    我需要打开该人的地址簿页面,将“职务名称”和“显示名称”的值提取到相关变量中。但是,我被卡住了,因为我找到了一个点,我宁愿添加一个新联系人而不是查看现有人的信息。

    这更清楚吗?如何在地址簿中搜索特定人员的信息?

2 个答案:

答案 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

它读取输入文件,将电子邮件地址作为变量获取,找到该人,将特定信息作为变量获取。

无论如何,感谢您的帮助!