Неправильно отсутствует электронная почта с использованием EWS для получения электронной почты на основе SearchFilters - PullRequest
2 голосов
/ 03 октября 2019

Я создал метод ниже. Этот метод должен возвращать письмо, которое я ищу, основываясь на некоторых критериях. Для некоторых писем он работает как положено и возвращает сообщение, которое я ищу, но для других - нет.

Например, если я ищу письмо с заголовком «SomeTitle» с отправителем «some@sender.com» и по полученному времени «2019/01/01 12:05:05», оно работает нормально.

Затем я ищу другое письмо с заголовком «SomeOtherTitle» с отправителем «someother@sender.com» и в течение полученного времени «2019/02/02 11:02:02» не работает.

Я могу открыть почтовый ящик на https://outlook.office365.com/mail и убедиться, что электронная почта, которую я ищу, есть, но по какой-то причине я не могу ее найти.

Метод:

private FindItemsResults<Item> GetEmailItems(
            CustomObjClass e)
        {
            var itemView = new ItemView(int.MaxValue);
            var searchCollection = new SearchFilter.SearchFilterCollection(LogicalOperator.And);
            var filter1 = new SearchFilter.IsGreaterThanOrEqualTo(EmailMessageSchema.DateTimeReceived, e.EmailReceivedDateTime.AddSeconds(-1));
            searchCollection.Add(filter1);
            var filter2 = new SearchFilter.IsLessThanOrEqualTo(EmailMessageSchema.DateTimeReceived, e.EmailReceivedDateTime.AddSeconds(1));
            searchCollection.Add(filter2);
            var filter3 = new SearchFilter.IsEqualTo(EmailMessageSchema.From, new EmailAddress(e.SenderEmail));
            searchCollection.Add(filter3);
            if (e.Subject == null)
            {
                searchCollection.Add(new SearchFilter.Not(new SearchFilter.Exists(EmailMessageSchema.Subject)));
            }
            else
            {
                searchCollection.Add(new SearchFilter.IsEqualTo(EmailMessageSchema.Subject, e.Subject));
            }
            var emailItems = ExchangeService.FindItems(
                new FolderId(WellKnownFolderName.Inbox, new Mailbox(ExchangeMailServerOptions.User)),
                searchCollection,
                itemView
            );
            return emailItems;
    }

Я пробовал много разных вещей, но мое воображение иссякло. Любая помощь будет очень ценится

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...