Переместить электронные письма, полученные днем, в другую папку - PullRequest
0 голосов
/ 17 июня 2020

Я получаю уведомления по электронной почте утром (10:00) и днем ​​(с 15:00 до 16:00) (тот же отправитель, тот же объект электронной почты). Я хотел бы переместить послеобеденные оповещения в другую папку с помощью правила «запустить сценарий». Я пробовал этот скрипт, но не работал:

Sub MovebyTime(oItem As Outlook.MailItem)
    With oItem
        If Format(oItem.ReceivedTime, "h") >= 15 And _
           Format(oItem.ReceivedTime, "h") < 16 Then
            .Move Session.GetDefaultFolder(olFolderInbox).folders("Foldername")
        End If
    End With
End Sub

спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

небольшое обновление предыдущего ответа:

 Set ns = application.GetNamespace("MAPI")
 set targetFolder = ns.Folders("Mailboxname").Folders("Foldername")
 oItem.Move targetFolder

Это также относится к случаю, когда у вас несколько почтовых ящиков

0 голосов
/ 17 июня 2020

Прежде всего, я бы рекомендовал запускать код под прилагаемым отладчиком. Итак, вы сможете понять, что не так с вашим кодом.

Но я бы начал с разрыва следующей строки кода и объявления каждого свойства или вызова метода в отдельной строке:

Session.GetDefaultFolder(olFolderInbox).folders("Foldername")

Сравните:

Dim inbox as Outlook.Folder
Dim targetFolder as Outlook.Folder

Set inbox = Session.GetDefaultFolder(olFolderInbox)
Set targetFolder = ns.folders("Foldername")

oItem.Move(targetFolder)
...