vba - 如何获取发件人的电子邮件地址?

标签 vba email outlook

我希望 Outlook 对来自特定电子邮件地址的电子邮件执行操作。

在 ThisOutlookSession 中我有:

Private Sub Application_NewMail() 'This triggers when a new email is recieved
    Call TestSub
End Sub

在我的模块中:

Public Sub TestSub()
    Dim Msg                 As Outlook.MailItem
    Dim FromEmailAddress    As String

    FromEmailAddress = Msg.SenderEmailAddress

    If FromEmailAddress = "Test@example.com" Then
        MsgBox ("Hello")
    End If

End Sub

我明白了

Run-time error '91':
Object variable or With block variable not set

FromEmailAddress = Msg.SenderEmailAddress 上。

我对我的代码尝试了多种变体,并耗尽了 Google 的能力。

最佳答案

最好检查发件人是否为 SMTPGetExchangeUser

        Dim Email_Address As String

        If Item.SenderEmailType = "SMTP" Then
            Email_Address = Item.SenderEmailAddress
        Else
            If Item.SenderEmailType = "EX" Then
                Email_Address = Item.Sender.GetExchangeUser.PrimarySmtpAddress
            End If
        End If

关于vba - 如何获取发件人的电子邮件地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60444657/

相关文章:

excel - 当我更改 Dim 语句的位置时引发 ByRef 参数类型不匹配错误

excel - 在多张纸上应用宏

C++ 管道字符串到邮件命令

html - 无法在 Outlook 2013 HTML 电子邮件中正确隐藏图像

excel - 如何以绝对单位设置列宽?

excel - VBA CopyPicture 在锁定屏幕上失败 ("error 1004 cannot empy clipboard")

java - 为什么 getPersonal() 在下面的情况下返回 null?

java - SMTP TLS 不适用于 gmail

powershell - 使用 powershell 从 outlook 获取最新约会

python - 使用 Python 检查 Outlook 是否已经打开,如果没有打开它