我在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重新检查发件人(因为我认为它会将其缓存在哪里)?
答案 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