如何检索发件人电子邮件地址

时间:2014-05-05 13:56:19

标签: vba outlook

我在Outlook 2013中编写了一个宏,我需要将发件人电子邮件地址检索为字符串

简单版本是

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim oMail As MailItem
Set oMail = Item

Dim sender as String
sender = oMail.SenderEmailAddress 

End Sub 

上述效果很好。

我现在已经向Outlook添加了一个新的电子邮件帐户,这就是问题所在。

如果我创建新电子邮件,则会使用我的default@mail.com电子邮件地址。如果我然后更改发送电子邮件的帐户(到myOtherAccount@mail.com),VBa中的SenderEmailAddress不会反映此更改...它仍然显示(在监视窗口中)为default.mail.com

如何让Outlook重新检查发件人(因为我认为它会将其缓存在哪里)?

3 个答案:

答案 0 :(得分:4)

在 ItemSend事件触发后,设置所有与发件人相关的属性。第一次看到发件人属性时,Items.ItemAdd事件会在“已发送邮件”文件夹中触发。

答案 1 :(得分:0)

只需在应用程序中定义您的文件夹:startup

Public Sub Application_Startup()

Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderSentbox)

End Sub

然后只需将上面的代码更改为itemAdd事件即可 喜欢

Private Sub myFolder_ItemAdd(ByVal item As Object)

答案 2 :(得分:0)

尝试一下:

senderEmail = Item.SendUsingAccount