Как загрузить непрочитанное вложение электронной почты с помощью веб-службы Exchange в ASP.NET?

Я использую Exchange Server 2007 с пакетом обновления 3 (SP3)

и я могу подключить веб-сервис обмена, используя следующий код

ExchangeServiceBinding esb = new ExchangeServiceBinding();
esb.RequestServerVersionValue = new RequestServerVersion();
esb.RequestServerVersionValue.Version = ExchangeVersionType.Exchange2007_SP1;
esb.Credentials = new NetworkCredential("<user_id>", "<password>", "<domain>");
esb.Url = @"https://<server_fqdn>/ews/Exchange.asmx";

Я ищу код для загрузки непрочитанного вложения.

Не могли бы вы мне помочь?

Ответ 1

Я нашел это:

private static void ProcessItems(ExchangeService exchangeService)
{
    var offset = 0;
    const int pageSize = 100;

    FindItemsResults<Item> result;

    do
    {
        var view = new ItemView(pageSize, offset)
        {
            SearchFilter = new SearchFilter.IsEqualTo(EmailMessageSchema.IsRead, false)
        };

        result = exchangeService.FindItems(WellKnownFolderName.Inbox, view);

        foreach (var item in result)
        {
            ProcessItem(item);
        }

        offset += pageSize;
    } while (result.MoreAvailable);
}

то из метода ProcessItem вы выполняете все, что хотите, например, загружать вложения и т.д.

source: Обработка элементов в папке Exchange с помощью управляемого API EWS