Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vbscript 获取特定电子邮件地址的联系信息_Vbscript_Outlook - Fatal编程技术网

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

Vbscript 获取特定电子邮件地址的联系信息,vbscript,outlook,Vbscript,Outlook,我正试图写一个脚本,可以 浏览我的域中的电子邮件地址列表 对于每封电子邮件,addressess都会获得显示名称和职务 将电子邮件、显示名称、职务输出到csv文件 我相信这相当简单,我这里唯一的问题是我不知道如何访问联系人的联系人卡 如何将strAddress变量传递给olContactItem对象 编辑: 为了改进问题-我不知道如何查看现有联系人的联系人user@mydomain.com来自csv文件中的电子邮件地址列表(未添加到我的联系人列表或任何内容) 到目前为止,我掌握的代码是: Con

我正试图写一个脚本,可以

  • 浏览我的域中的电子邮件地址列表
  • 对于每封电子邮件,addressess都会获得显示名称和职务
  • 将电子邮件、显示名称、职务输出到csv文件
  • 我相信这相当简单,我这里唯一的问题是我不知道如何访问联系人的联系人卡

    如何将
    strAddress
    变量传递给
    olContactItem
    对象

    编辑: 为了改进问题-我不知道如何查看现有联系人的联系人user@mydomain.com来自csv文件中的电子邮件地址列表(未添加到我的联系人列表或任何内容)

    到目前为止,我掌握的代码是:

    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
    
    我需要打开那个人的addess book页面,将职务和显示名称的值提取到相关变量中。然而,我被卡住了,因为我到了一个地步,我宁愿添加一个新的联系人,而不是查看现有的人的信息


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

    请尝试以下方法。要查看其他属性及其DASL名称,请使用查看live GAL对象:单击IAddrBook按钮并向下钻取容器层次结构,或单击Imapisence | QueryIdentity查看当前用户,或(如果您与特定收件人有消息)单击IMessage,转到GetRecipientTable表,对收件人加倍。
    一旦有了iMail用户窗口,请选择所需的属性并查看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")
    

    最后回答我自己的问题-这似乎是我所需要的一切:

    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
    
    它读取输入文件,获取电子邮件地址作为变量,查找人员,获取特定信息作为变量


    无论如何,谢谢你的帮助

    我不知道你的问题是什么;从GAL的AddressEntry对象检索数据时是否遇到问题?或在已创建的ContactItem对象上设置各种属性?我不知道如何为特定电子邮件地址调用ContactItem对象,然后从此对象检索多个属性,即显示名称、标题等。请使用Namespace.CreateItem或MAPIFolder.Items.Add创建ContactItem。然后,您可以使用显式公开的属性(AddressEntry.Name等)读取各种属性,或者使用AddressEntry.PropertyAccessor.GetProperty读取原始扩展MAPI属性。我改进了我的问题-这更清楚吗?谢谢