Я хочу получить все письма в папке "Входящие" с помощью 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), как использовать их для извлечения всех писем в папке "Входящие"
Я не нашел ни одной статьи в сети, хорошо объясняя это, но просто давая образцы кода. По достоинству оценят сомнительное объяснение, несмотря на то, что это может затянуться.