Outlook, VBS: Копирование сообщений — как убить алерт?

Outlook 2010. Простенький VBS скрипт копирует прошлогодние сообщения из одной папки (расположенной в ящике на сервере Exchange) в другую (расположенную в локальном pst-шнике).
Постоянно возникает сообщение
Невозможно открыть пользовательскую форму. Вместо нее будет использована форма Outlook. Объект не поддерживает требуемое действие.
и, пока его не ткнешь, скрипт висит на строке с копированием.
Что за бред? Какая нах "пользовательская форма"?
И, собственно, главный вопрос: Как предотвратить появление этого долбанного сообщения?

Set oOApp = CreateObject("Outlook.Application")
Set oSrcFolder = oOApp.GetNamespace("MAPI").Folders.Item(folder0).Folders.Item(subfolder01)
Set oDestFolder = oOApp.GetNamespace("MAPI").Folders.Item(folder1).Folders.Item(subfolder11)
On Error Resume Next
For Each Item In oSrcFolder.Items
	If Year(Item.CreationTime) < 2016 Then
		WScript.Echo Item.CreationTime
		Item.Copy.Move oDestFolder
	End If
Next
  • Вопрос задан
  • 601 просмотр
Пригласить эксперта
Ответы на вопрос 1
@mozers Автор вопроса
Допетрил:
Все дело в том, что в почтовом ящике, помимо нормальных сообщений присутсвует всякая хрень (например, отзывы). Когда Outlook, побуждаемый скриптом, доходит до копирования таких сообщений, то тогда он и выдает вышеупомянутый алерт "Невозможно открыть пользовательскую форму...".
Как избавиться от этих назойливых сообщений и обеспечить безперебойное копирование? - очевидно копировать только "нормальные" сообщения, пропуская все остальное. Отличить обычные сообщения от всякой хрени можно анализируя имя класса сообщения. В данном случае имя класса должно начинаться с текста "IPM.Note":
If Left(Item.MessageClass, 8) = "IPM.Note" Then
  Item.Copy.Move oDestFolder
End If
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы