Я пытаюсь написать скрипт, который копирует сообщение с вложением и пересылает его по указанному адресу.
Option Explicit
Private WithEvents inboxItems As Outlook.Items
Private Sub Application_Startup()
Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.Account
Set outlookApp = Outlook.Application
'Set objectNS = outlookApp.GetNamespace("MAPI")
'Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
Set objectNS = outlookApp.Session.Accounts.Item(2)
Set inboxItems = objectNS.DeliveryStore.GetDefaultFolder(olFolderInbox).Items
End Sub
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
Dim MessageInfo
Dim Result
If TypeName(Item) = "MailItem" Then
MsgBox ("debug msg")
Dim oNS As Outlook.NameSpace
Set oNS = Application.GetNamespace("MAPI")
Dim myItem As Outlook.MailItem
Dim myRecipient As Outlook.Recipient
Set myItem = Application.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Add("mail@mail.com")
myItem.Subject = Item.Subject
myItem.SendUsingAccount = oNS.Accounts.Item(2)
myItem.HTMLBody = Item.Body
myItem.Display
'myItem.Send
End If
ExitNewItem:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ExitNewItem
End Sub
Скрипт автоматически запускается при запуске. Событие инициируется, когда в папке входящих сообщений появляется новый элемент. Так как у меня есть несколько учетных записей, связанных с Outlook. Я использую:
Set objectNS = outlookApp.Session.Accounts.Item(2)
Я не понимаю, почему тело сообщения не копируется (например, текст + картинка). Я пытался использовать:
myItem.HTMLBody = Item.RTFbody
или
myItem.HTMLBody = Item.HTMLbody
Но все равно сообщение остается пустым Скажите, что я делаю не так?