Я создал метод ниже. Этот метод должен возвращать письмо, которое я ищу, основываясь на некоторых критериях. Для некоторых писем он работает как положено и возвращает сообщение, которое я ищу, но для других - нет.
Например, если я ищу письмо с заголовком «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;
}
Я пробовал много разных вещей, но мое воображение иссякло. Любая помощь будет очень ценится