Мне нужно пропустить все непрочитанные сообщения в папке «Входящие» и загрузить первое вложение для каждого письма, мой код работает, но только для первого сообщения электронной почты, почему?EWS foreach все непрочитанные сообщения не работают
/* load all unread emails */
SearchFilter sf = new SearchFilter.SearchFilterCollection(LogicalOperator.And, new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false));
FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, sf, new ItemView(1));
/* loop through emails */
foreach (EmailMessage item in findResults)
{
item.Load();
/* download attachment if any */
if (item.HasAttachments && item.Attachments[0] is FileAttachment)
{
Console.WriteLine(item.Attachments[0].Name);
FileAttachment fileAttachment = item.Attachments[0] as FileAttachment;
/* download attachment to folder */
fileAttachment.Load(downloadDir + fileAttachment.Name);
}
/* mark email as read */
item.IsRead = true;
item.Update(ConflictResolutionMode.AlwaysOverwrite);
}
Console.WriteLine("Done");
В моем почтовом ящике он установил первое электронное письмо для чтения, но потом скрипт остановился и напишите «Готово». к консольному окну. Что не так ?
Может быть, ваши изменения коллекции в то время как в итерации по коллекции? Что увидитResults.Count вернуться до начала цикла? –