Извлечение всех писем в папке «Входящие» из управляемого API веб-служб Exchange и сохранение их в виде файлов .eml

Я хочу получить все письма в папке «Входящие» с помощью EWS Managed API и сохранить их как.eml, Проблема в получении(1) все письма с(2) все заголовки (как от, до, тема) (Я храню информацию об этих ценностяхfrom, to и другие свойства где-то еще, поэтому они мне тоже нужны) и(3)byte[] EmailMessage.MimeContent.Content, На самом деле мне не хватает понимания

Microsoft.Exchange.WebServices.Data.ItemView,Microsoft.Exchange.WebServices.Data.BasePropertySet а такжеMicrosoft.Exchange.WebServices.Data.ItemSchema

вот почему я нахожу это трудным.

Мой основной код:

Когда я создаюPropertySet следующее:

PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties, ItemSchema.MimeContent);

Я получаю следующее исключение:

The property MimeContent can't be used in FindItem requests.

Я не понимаю

(1) Что этиItemSchema а такжеBasePropertySet находятся

(2) И как мы должны их использовать

Итак, я удалилItemSchema.MimeContent:

PropertySet properties = new PropertySet(BasePropertySet.FirstClassProperties);

Я написал простой следующий код, чтобы получить все письма во входящие:

ItemView view = new ItemView(50);
view.PropertySet = properties;
FindItemsResults<Item> findResults; 
List<EmailMessage> emails = new List<EmailMessage>();

do
{    
    findResults = service.FindItems(WellKnownFolderName.Inbox, view);
    foreach (var item in findResults.Items)
    {
        emails.Add((EmailMessage)item);
    }
    Console.WriteLine("Loop");
    view.Offset = 50;
}
while (findResults.MoreAvailable);

Выше я сохранил размер страницыItemView до 50, чтобы получить не более 50 писем одновременно, а затем сместить его на 50, чтобы получить следующие 50 писем, если они есть. Однако это идет в бесконечном цикле и непрерывно печатаетLoop на консоли. Так что я должен пониматьpagesize а такжеoffset неправильно. я хочу понять

(3) чтоpagesize, offset а такжеoffsetbasepoint вItemView конструктор означает

(4) как они себя ведут и

(5) как использовать их для получения всех писем в почтовом ящике

Я не нашел ни одной статьи в Интернете, где можно было бы хорошо объяснить их, а просто привел примеры кода. Буду признателен за вопрос объяснения, хотя это может занять много времени.

Ответы на вопрос(1)

Ваш ответ на вопрос