Использование управляемого API Exchange (EWS) для мониторинга вложений почтового ящика

#exchange-server #ews-managed-api

#exchange-сервер #ews-managed-api

Вопрос:

Я планирую создать службу Windows, которая будет отслеживать почтовый ящик Exchange на предмет сообщений с определенной темой. Вложения из таких электронных писем должны храниться в определенной папке на общей сетевой папке. Я полагаю, что могу достичь этого с помощью управляемого API веб-служб Exchange (с использованием Exchange 2007 SP1).

Если у вас есть опыт в этом, пожалуйста, поделитесь некоторыми примерами или ссылками, отличными от приведенной ниже ссылки MSDN, которые могут помочь мне начать.

http://msdn.microsoft.com/en-us/library/dd633696(v=EXCHG.80).aspx

Комментарии:

1. пожалуйста, есть предложения?

2. @Pratick Kothari Вы пробовали задавать этот вопрос при serverfault? Я думаю, вам больше повезет на этом сайте.

3. Вы пытаетесь сохранить вложения в папку? Или вы пытаетесь переместить электронные письма?

4. Я хочу сохранить вложение в папку по теме электронного письма.

5. Вы можете предоставить более подробную информацию для более полного примера.

Ответ №1:

Допустим, эти письма приходят в ваш почтовый ящик на X mailbox. Вы создаете подписку на эту папку следующим образом

 PullSubscription subscription = 
SomeExchangeService.SubscribeToPullNotifications(
new FolderId[]{ WellKnownFolderName.Inbox },1440,"",EventType.Created);
Subscriptions.Add(subscription);
  

Теперь вам нужно установить таймер и проверить уведомления о возврате

 static void Exchanger_Elapsed(object sender, ElapsedEventArgs e)
    {    
        foreach (var pullSubscription in Subscriptions)
        {
            foreach (var itemEvent in pullSubscription.GetEvents().ItemEvents)
            {
                Item item = Item.Bind(SomeExchangeService, itemEvent.ItemId);
                if (item.Subject == someString)
                {
                  //  item.Attachments do something
                  //  As in read it as a stream and write it 
                  //  to a file according to mime type and file extension
                }
            }
        }
   }
  

Я надеюсь, это поможет…

ОБНОВЛЕНИЕ из-за запроса электронной почты

 public static List<PullSubscriptionpublic static List<PullSubscription> Subscriptions = new List<PullSubscription>();> Subscriptions = new List<PullSubscription>();
  

Ответ №2:

Рассмотрите возможность создания папки поиска для просмотра сообщений. Вам нужно будет только искать и обрабатывать сообщения в папке поиска.

Комментарии:

1. Это приведет к опросам сервера с интервалом, учитывая, что вы не можете подписаться на searchfolders в Exchange 2007 sp1 EWS managed api.