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