vba - 获取发件人电子邮件地址

标签 vba email outlook

我有以下 VBA 代码,用于在收到特定主题时自动发送电子邮件。

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
Dim objNS As Outlook.NameSpace
Set objNS = GetNamespace("MAPI")
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub Items_ItemAdd(ByVal item As Object)
If item.Class = olMail Then
    If Left$(item.Subject, 29) = "Hazard Identification Report" Then
        Dim Msg As Outlook.MailItem
        Dim NewForward As Outlook.MailItem
        Dim myFolder As Outlook.MAPIFolder
        Dim olApp As Outlook.Application
        Dim olNS As Outlook.NameSpace

        Set Msg = item
        Set NewForward = Msg.Forward
        Set olApp = Outlook.Application
        Set olNS = olApp.GetNamespace("MAPI")

        strSender = ""
        strSenderName = Sender.GetExchangeUser().PrimarySmtpAddress

        If itm.SenderEmailAddress = "EX" Then
            Set objSender = itm.Sender
            If Not (objSender Is Nothing) Then
                Set objExchUser = Sender.GetExchangeUser()
                If Not (objExchUser Is Nothing) Then
                    strSender = objExchUser.PrimarySmtpAddress
                End If
            End If
        Else
            strSender = itm.SenderEmailAddress
        End If

我在以下行遇到编译/对象错误:

strSenderName = Sender.GetExchangeUser().PrimarySmtpAddress

发件人姓名显示为“空”。

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

最佳答案

最初在评论中回答。

Why not msg.SenderEmailAddress

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

相关文章:

c# - 如何保存带有附件的outlook邮件?

jquery - 如何使用 VBA 单击基于 Java 的 Web 按钮?

email - 为什么 Subversion 不允许用户名中包含 "."和 "@"?或者是吗?

c# - 带有 VS 2010 Express 的简单 Outlook 2007(或更新版本)插件/插件

email - Outlook 2016 禁用证书检查

php - 如何使用 barryvdh/laravel-dompdf 将 PDF 附加到 Laravel 中的电子邮件中

java - 在网页中显示 Outlook 房间占用率

vba - 如何检查邮件是否具有有效的数字签名?

excel - 打开工作簿时出现编译错误

excel - 多次保存文件