Использование EWS API для поиска по различным почтовым ящикам пользователей

Мы разрабатываем модуль, основной целью которого является отслеживание и сбор информации об инспекциях ущерба (страховой рынок). Каждый случай имеет код (например, L000525). В каждом случае можно управлять несколькими людьми. Все электронные письма, относящиеся к конкретному случаю, включают код случая в теме.

Что мы хотим сделать, так это собрать и показать входящие и отправленные письма, связанные с каждым конкретным случаем.

Идея состоит в том, что любой пользователь может открыть окно "Управление случаем", выбрать конкретный случай, а затем получить всю связанную информацию (включая письма, конечно).

Мы должны найти электронные письма в почтовых ящиках около 20 пользователей. Итак, вопросы:

  • Каков лучший способ сделать это? Будет ли он потреблять много времени и ресурсов?

Мы новичок в мире Exchange, поэтому мы думаем об имитации Exchange, но мы не уверены в этом. Модуль разработан в Silverlight 3, WCF, SQL Server + Exchange 2007.

Ответы

Ответ 1

Если учетные данные, используемые для подключения к EWS, имеют права доступа к почтовому ящику пользователя, вы должны сделать что-то вроде этого:

var service = new ExchangeService();
service.Credentials = new WebCredentials("[email protected]", "password");
service.AutodiscoverUrl("[email protected]");

var userMailbox = new Mailbox("[email protected]");
var folderId = new FolderId(WellKnownFolderName.Inbox, userMailbox);

var itemView = new ItemView(20);   // page size
var userItems = service.FindItems(folderId, itemView);

foreach (var item in userItems)
{
    // do something with item (nb: it might not be a message)
}

Что это. Вау, мой первый ответ SO!

Ответ 2

Полный рабочий пример того, что сделал @smcintosh, приведен выше: API Office365 - администратор, получающий доступ к событиям календаря других пользователей/комнат. Это полный класс java, который должен скомпилировать и запустить и получить доступ к календарю ресурсов комнаты. Удачи!