Использование 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, который должен скомпилировать и запустить и получить доступ к календарю ресурсов комнаты. Удачи!