开发者

Using Exchange managed api (EWS) to monitor mailbox attachments

I plan on creating a windows service that will monitor an exchange mailbox for mails with particular subject. The attachments from such emails need to be stored in a specific folder on the network share. I believe I can achieve this using Exchange Web Services Managed API (us开发者_开发知识库ing Exchange 2007 SP1).

If you have experience with this, please share some samples or links other than the MSDN link below that can give me a jump start.

http://msdn.microsoft.com/en-us/library/dd633696%28v=EXCHG.80%29.aspx


Lets say these mails are coming into your Inbox on X mailbox. You create a subscription to that folder like so

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

Now you have to set a timer and check the pull notifs

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
                }
            }
        }
   }

I hope this helps...

UPDATE Due to email request

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


Consider creating a search folder to screen the messages. You will only need to look for, and process, messages in the search folder.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜