Outlook VBA Save Copy Sent Item

Я пишу часть кода Outlook-vba, которая сохраняет копию отправленного почтового отправления в определенной папке. Код запускается при нажатии "отправить".

Приведенный ниже код работает, однако элемент сохраняется в папке как элемент электронной почты UNSENT (Outlook показывает сообщение: "Это сообщение не отправлено"). Я хочу, чтобы он был сохранен в моей папке как отправленный элемент (точно так же, как папка "отправленные элементы").

Не могли бы вы прокомментировать следующий код:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrorHandler

Dim moveToFolder As Outlook.MAPIFolder
Dim myCopiedItem As Outlook.MailItem

Set ns = Application.GetNamespace("MAPI")
Set moveToFolder = ns.Folders("Mailbox - My Mailbox").Folders(".Waiting_for")


With Item

 If InStr(Item.Body, "/wf") > 0 Then

 Set myCopiedItem = Item.copy

 myCopiedItem.Move moveToFolder

 Else
 End If

End With

Exit Sub
ErrorHandler:
 MsgBox "Error!"
End Sub
1 ответ

Когда событие ItemSend срабатывает, сообщение еще не отправлено (вы можете установить для параметра Отмена значение true). Самое раннее, что вы видите сообщение в отправленном состоянии, - это когда событие Items.ItemAdd запускается в папке "Отправленные".

Почему бы просто не установить свойство MailItem.SaveSentMessageFolder? Outlook будет автоматически перемещать сообщение после его отправки. Единственное ограничение заключается в том, что папка должна находиться в том же хранилище, где было создано сообщение.

licensed under cc by-sa 3.0 with attribution.