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



我希望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

我得到

运行时错误"91":
对象变量或With块变量未设置

FromEmailAddress = Msg.SenderEmailAddress上。

我在我的代码上尝试了许多变体,并耗尽了谷歌的力量。

检查发件人是SMTP还是GetExchangeUser也很好

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

您可以使用以下代码:

Dim oInbox    As Outlook.Folder
Dim oItem     As Object
Dim Msg       As MailItem
Set oInbox = ActiveExplorer.Session.DefaultStore.GetRootFolder().Folders("Inbox")
For Each oItem In oInbox.Items
If TypeOf oItem Is MailItem Then
Set Msg = oItem
FromEmailAddress = Msg.SenderEmailAddress
Else
Debug.Print "Skipping " & TypeName(oItem)
End If
Next

相关内容

最新更新