Учетная запись Windows 7, Outlook 2010 Exchange. Программист Excel VBA среднего уровня, начинающий программист Outlook VBA.
Мне нужно убедиться, что все входящие электронные письма отправляются в учетную запись Gmail. Я модифицировал онлайн-макрос по своему усмотрению. Он безупречно работает со всеми входящими электронными письмами, ЗА ИСКЛЮЧЕНИЕМ тех, которые загружаются при первой загрузке и запуске Outlook. Он находился в ThisOutlookSession.
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 "[email protected]"
myItem.DeleteAfterSubmit = True
myItem.Send
Set myItem = Nothing
Else
Debug.Print "Skipping " & TypeName(objItem)
Set myItem = Nothing
End If
Next
End Sub
Вопрос к форуму любезно проинформировал меня о том, что сообщения в очереди при запуске Outlook и обновлении папки не запускают процедуры обработки событий NewMail и NewMailEx. Они рекомендовали установить правило, запускающее сценарий для всей входящей почты.
Я попытался вызвать процедуру, но сценарий не был «виден». Я поискал некоторое время и обнаружил, что распознаются только скрипты, работающие как MailItems, и они должны быть в модуле. Я изменил сценарий, чтобы пройти этот тест, и теперь он был виден.
Sub IncomingBCC(myItem As MailItem)
Dim 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 "[email protected]"
myItem.DeleteAfterSubmit = True
myItem.Send
Set myItem = Nothing
Else
Debug.Print "Skipping " & TypeName(objItem)
Set myItem = Nothing
End If
Next
End Sub
Теперь правила Outlook «видят» сценарий и позволяют создать правило. При запуске выдает следующую ошибку: «Скрипт» «не существует или недействителен». Я не смог найти подходящей онлайн-справки по этой ошибке даже после тщательного поиска.
Я был бы признателен за руководство, как действовать дальше. Заранее спасибо.