获取新的电子邮件发件人地址

时间:2015-10-11 18:37:11

标签: vba outlook outlook-vba outlook-2010

我写了一封新电子邮件。在发送此电子邮件之前,我希望(使用VBA)获取发件人的电子邮件地址。

我编写了以下示例代码。当我运行此代码时,第一个消息框正确显示电子邮件主题,但第二个消息框不显示任何内容(消息框为空)。

Sub email_test()

    Dim eSubject As String
    Dim eSender As String

    eSubject = Application.ActiveInspector.currentItem.subject
    MsgBox eSubject

    eSubject = Application.ActiveInspector.currentItem.SenderEmailAddress
    MsgBox eSender

End Sub

2 个答案:

答案 0 :(得分:1)

新邮件项目未设置与Sender *相关的​​属性。它们在传输提供程序处理邮件后立即设置,例如可以从“已发送邮件”文件夹中获取。您可以处理来自“已发送邮件”文件夹的Items类的ItemAdd事件。请注意,MailItem类的SaveSentMessageFolder属性可用于设置Folder对象,该对象表示发送后将保存电子邮件副本的文件夹。此外,可以设置DeleteAfterSubmit属性,在这种情况下,发送后不会保存邮件的副本。

您可能对SendUsingAccount属性感兴趣,该属性允许获取或设置一个Account对象,该对象代表发送MailItem的帐户。

答案 1 :(得分:1)

使用MailItem.SendUsingAccount.SmtpAddress。如果MailItem.SendUsingAccount为空,您可以假设将使用默认帐户 - 可以从Application.Session.CurrentUser.Address访问该地址。如果是Exchange邮箱,请使用Application.Session.CurrentUser.AdderssEntry.GetExchangeUser.PrimarySmtpAddress