Windows 7,Outlook 2010 Exchange。
我有一个用于传入电子邮件的自动转发宏,可以将所有传入的电子邮件项目转发到我需要进行整合的外部帐户。
唯一的问题是每次我冷启动和启动Outlook时,显示在通常"更新此文件夹后出现的项目......"在自动收报机中不要自动转发。从那时起,宏开始再次完美运作。
它位于ThisOutlookSession。
在以前的Outlook版本中,运行类似宏的规则总是在启动时触发。
感谢您的帮助。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim varEntryIDs
Dim objItem
Dim myItem As MailItem
Dim i As Integer
varEntryIDs = Split(EntryIDCollection, ",")
For i = 0 To UBound(varEntryIDs)
Set objItem = Application.Session.GetItemFromID(varEntryIDs(i))
If TypeOf objItem Is MailItem Then
Set myItem = objItem.Forward
myItem.Recipients.Add "bcc.hwb@gmail.com"
myItem.DeleteAfterSubmit = True
myItem.Send
Set myItem = Nothing
Else
Debug.Print "Skipping " & TypeName(objItem)
Set myItem = Nothing
End If
Next
End Sub
答案 0 :(得分:0)
尝试设置一个调用宏子而不是处理NewMailEx事件的规则。
如果您在非缓存模式下运行Exchange,只有在新电子邮件到达时Outlook正在运行,事件才会触发。如果您关闭并重新打开Outlook,队列中等待传递的所有电子邮件都将显示在Outlook中,但事件不会触发。这是Outlook中的一个众所周知的问题。
您可以在Outlook NewMail event unleashed: the challenge (NewMail, NewMailEx, ItemAdd)文章中了解处理传入电子邮件的所有可能方法。