【问题标题】:Extracting Outlook Contact Information with VBA使用 VBA 提取 Outlook 联系人信息
【发布时间】:2015-08-25 14:03:15
【问题描述】:

我正在尝试从 Outlook 中联系人的联系人信息部分提取电子邮件地址,但是,我无法访问在右键单击联系人并导航到 Outlook Properties > E-Mail Addresses 时显示的相同数据。

我如何以编程方式访问它?

【问题讨论】:

    标签: vba email outlook contacts


    【解决方案1】:
    ContactItem.Email1Address
    

    返回或设置一个字符串,表示第一个电子邮件地址 联系人的电子邮件条目。读/写。

    via MSDN

    Gregthatcher.com 有一个可以为此任务修改的报告脚本。基本上你Set ContactFolder = Session.GetDefaultFolder(olFolderContacts)然后循环通过For Each currentItem In ContactFolder.Items,检查类Class = olContact然后得到currentItem.Email1Address。

    【讨论】:

    • 我使用了它,但它返回了空字符串。查看 Visual Basic 编辑器中的 Locals 窗口,所有电子邮件参数都有空值。
    • @Thanasis 是否填充了其他任何contactItem 属性?
    • 我想我不明白你的问题@C8H10N4O2。何时填充?
    【解决方案2】:

    您上面的不是联系人,这是一个 GAL 地址条目。屏幕截图中的数据存储在 PR_EMS_AB_PROXY_ADDRESSES MAPI 属性(DASL 名称 http://schemas.microsoft.com/mapi/proptag/0x800F101F )中。

    以下脚本将在 Outlook 中显示当前所选邮件的 EX 发件人的代理地址:

    Set msg = Application.ActiveExplorer.Selection(1)
    Set vSender = msg.Sender
    vProxyAddresses = vSender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101F")
    For Index = LBound(vProxyAddresses) To UBound(vProxyAddresses)
      MsgBox vProxyAddresses(Index)
    Next
    

    【讨论】:

    • 但是如果我没有消息怎么办?我最初想做的是:Excel中用户的用户名与Windows凭据中的用户名相同。此外,这个用户名可以在我在屏幕截图中以“username@company.com”形式附加的电子邮件列表中找到。我想在 Excel 中使用用户的用户名,找到哪个联系人有这个电子邮件Outlook 并检索用户的名称。这是否可能无需搜索电子邮件的发件人?
    • 在这种情况下调用 Application.Session.CreateRecipient 传递要解析的名称,调用 Recipient.Resolve。如果返回 true,请使用 Recipient.AddressEntry 对象。
    • 我不太确定我是否能做到你所说的。但是,我明天会在工作中尝试,我会告诉你我的结果。顺便说一句,我在Can't get SMTP address of contact that shares email address of an Exchange user 找到了你的一些 cmets,我也会看看这个。
    • 根据 Microsoft MSDN Map a Display Name to an E-mail Address,“CreateRecipient”部分中的参数是一个名称。但是,我唯一知道的是其中一封 smtp 电子邮件,其模式类似于“k012345@conpany.com”,我正在寻找在屏幕截图中显示的列表中包含此电子邮件的帐户名称。我还可以使用您建议的方法并将其作为参数放在“CreateRecipient”中吗?“k012345@conpany.com”?
    • Exchange 提供商会将 SMTP 地址解析给 GAL 用户。它还可以使用显示名称和别名(登录)名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-21
    • 2020-11-10
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    相关资源
    最近更新 更多