Я создал правило, которое запускает VBA-сценарий в зависимости от субъекта полученного сообщения электронной почты (Правила: Тема «MY_SUBJECT» -> запустить скрипт).
Сценарий VBA затем выполняет некоторые действия, а затем он должен, наконец, удалить исходное электронное письмо.удалить электронную почту из почтового ящика, а также удалить его из удаленной-папки с помощью rule-> сценария
Эта часть легко:
Sub doWorkAndDeleteMail(Item As Outlook.MailItem)
' doSomething:
' delete email from inbox
Item.Delete
End Sub
Теперь электронная почта будет сидеть в удаляемой-детале-папке. Но я должен достичь, чтобы удалить эту почту из папки удаленных элементов. Так как я знаю, что предмет этой почты (потому что это вызвало мое правило, в первую очередь), я попытался следующий подход:
Sub doWorkAndDeleteMail(Item As Outlook.MailItem)
' doSomething:
' delete email from inbox
Item.Delete
End Sub
' delete email from deleted items-folder
Dim deletedFolder As Outlook.Folder
Set deletedFolder = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderDeletedItems)
Dim i As Long
For i = myFolder.Items.Count To 1 Step -1
If (deletedFolder.Items(i).Subject) = "MY_SUBJECT" Then
deletedFolder.Items(i).Delete
Exit For
End If
Next if
End Sub
Ну, это в основном работает: почту с этой темой можно найти в deleted-items-folder, и он будет удален, да. Но, к сожалению, это не работает должным образом: Это постоянное удаление работает только после запуска скрипта во второй раз.
Таким образом, электронное письмо, запускающее мой скрипт, никогда не будет удалено постоянно в реальном прогоне этого сценария, но только в следующем прогоне (после того, как будет получено следующее письмо с объектом-триггером для моего правила), но затем это самое следующее электронная почта не будет удалена, снова).
Вы не знаете, что я делаю неправильно здесь? Как-то похоже, что мне нужно как-то обновить папку с удаленными предметами. Или мне нужно сделать первый мой Item.Delete
как-то явно?
http://stackoverflow.com/questions/1110612/permanently-delete-mailmessage-in-outlook-with-vba –
Я видел это решение раньше, да. У меня нет RDO или CDO (также я хочу независимое решение). Третий apporach там (маркировка почты с имуществом) выглядит совершенно одинаково для моего: не имеет значения, ищу ли я предмет или другое свойство. Немного больше в нижней части этой темы кто-то утверждает, что существует метод «удалить», который будет удалять почтовый элемент с самого начала. Но этот метод удаления, похоже, не существует для типа «Outlook.MailItem» (который является входом сценария).Во всяком случае: я хотел бы знать, что не так с моим подходом. – and0r
Я пробовал настройку и искал тему: как и ожидалось, поведение точно такое же. Удаление выполняется только при запуске скрипта в следующий раз. – and0r