【问题标题】:How to get Alias from contact properties如何从联系人属性中获取别名
【发布时间】:2020-11-06 01:20:53
【问题描述】:

我正在尝试从发件人的电子邮件地址获取每封收到的电子邮件的别名 ID。
要获取别名,您可以右键单击收到的电子邮件,选择打开 Outlook 属性。

我构建了一个代码,用于从单元格 B 中指定的特定日期提取收件箱中收到的电子邮件。
我正在尝试在 D4 之后添加别名 ID。

Sub GetFromOutlook()

    Dim OutlookApp As Outlook.Application
    Dim OutlookNamespace As Namespace
    Dim Folder As MAPIFolder
    Dim OutlookMail As Variant
    Dim i As Integer
    Dim olExchgnUser    As ExchangeUser
     
    Set OutlookApp = New Outlook.Application
    Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
    Set Folder = OutlookNamespace.Folders("insert your own email address").Folders("inbox")

    i = 1

    For Each OutlookMail In Folder.Items
        If OutlookMail.ReceivedTime >= Range("email_Receipt_Date").Value Then
            Range("email_Subject").Offset(i, 0).Value = OutlookMail.Subject

            ''Alias this is where i'm attempting to get Alias as part of the loop from every Item
            Dim olNameSpace     As Namespace
            Dim olAddrList      As AddressList
        
            Set olAddrList = OutlookNamespace.AddressLists("Global Address List")
            Set olExchgnUser = olAddrEntry.GetExchangeUser
            With olExchgnUser
                Range("Alias_name").Offset(i, 0) = .Alias
            End With
            ''''ENd Alias

            Range("email_Subject").Offset(i, 0).Columns.AutoFit
            Range("email_Subject").Offset(i, 0).VerticalAlignment = xlTop
            Range("email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
            Range("email_Date").Offset(i, 0).Columns.AutoFit
            Range("email_Date").Offset(i, 0).VerticalAlignment = xlTop
            Range("email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
            Range("email_Sender").Offset(i, 0).Columns.AutoFit
            Range("email_Sender").Offset(i, 0).VerticalAlignment = xlTop
            Range("email_Body").Offset(i, 0).Value = OutlookMail.Body
            Range("email_Body").Offset(i, 0).Columns.AutoFit
            Range("email_Body").Offset(i, 0).VerticalAlignment = xlTop

            i = i + 1
        End If
    Next OutlookMail

    Set Folder = Nothing
    Set OutlookNamespace = Nothing
    Set OutlookApp = Nothing
    MsgBox "operation Complete"

    End Sub

【问题讨论】:

  • 没有Exchange,我帮不了你,但是这个论坛上类似问题的答案呢?

标签: vba outlook


【解决方案1】:

替换行

 Set olAddrList = OutlookNamespace.AddressLists("Global Address List")
 Set olExchgnUser = olAddrEntry.GetExchangeUser

 Set olExchgnUser = OutlookMail.Sender.GetExchangeUser

(省略 null 和错误处理)。

您真的不应该循环浏览文件夹中的所有消息 - 使用 Items.Find/FindNextItems.Restrict

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-13
    • 2017-09-07
    • 1970-01-01
    • 2020-04-04
    • 2012-10-11
    • 1970-01-01
    • 2015-07-02
    • 2021-01-06
    相关资源
    最近更新 更多