Найти электронную почту от ReceivedTime - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь найти электронную почту из полученного времени, но кое-что не хочет работать. Я не получаю никакой ошибки, но сообщение не перемещается в папку diff

Dim myNameSpace As Outlook.NameSpace
Dim myInbox As Outlook.Folder
Dim myDestFolder As Outlook.Folder
Dim myItems As Outlook.Items
Dim myItem As Object
Dim myOlApp As New Outlook.Application

Set myNameSpace = Outlook.Application.GetNamespace("MAPI")

Set myInbox = myNameSpace.Folders(user_email).Folders("RXXX")


Set myDestFolder = myInbox.Folders(fDestination)

Set myItems = myInbox.Items

Set myItem = myItems.Find("[ReceivedTime] = '#" + msg_date + "#'")

While TypeName(myItem) <> "Nothing"
MsgBox 1
    MoveItems = MoveItems + 1
    myItem.Move myDestFolder
    Set myItem = myItems.FindNext
Wend

Set myNameSpace = Nothing
Set myInbox = Nothing
Set myItems = Nothing
Set myDestFolder = Nothing
Set myItem = Nothing

Ответы [ 2 ]

0 голосов
/ 17 апреля 2020

Никогда не следует использовать = при работе со свойствами DateTime - условие никогда не будет выполнено (даже если вы укажете дату и время до уровня в миллисекундах) из-за ошибок округления. Всегда используйте диапазон

@SQL=(ReceivedTime < '4/17/2020') AND (ReceivedTime > '4/1/2020')
0 голосов
/ 15 апреля 2020

Формат кажется правильным, но одинарные кавычки не должны присутствовать:

Set myItem = myItems.Find("[ReceivedTime] = #" + msg_date + "#")
...