Exchange server 使用Exchange托管api(EWS)监视邮箱附件

Exchange server 使用Exchange托管api(EWS)监视邮箱附件,exchange-server,ews-managed-api,Exchange Server,Ews Managed Api,我计划创建一个windows服务,用于监视exchange邮箱中特定主题的邮件。此类电子邮件的附件需要存储在网络共享上的特定文件夹中。我相信我可以使用ExchangeWebServicesManagedAPI(使用Exchange2007SP1)实现这一点 如果你有这方面的经验,请分享一些样本或链接,而不是下面的MSDN链接,可以给我一个跳转开始 假设这些邮件将通过X邮箱进入您的收件箱。您可以像这样创建对该文件夹的订阅 PullSubscription subscription = Some

我计划创建一个windows服务,用于监视exchange邮箱中特定主题的邮件。此类电子邮件的附件需要存储在网络共享上的特定文件夹中。我相信我可以使用ExchangeWebServicesManagedAPI(使用Exchange2007SP1)实现这一点

如果你有这方面的经验,请分享一些样本或链接,而不是下面的MSDN链接,可以给我一个跳转开始

假设这些邮件将通过X邮箱进入您的收件箱。您可以像这样创建对该文件夹的订阅

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>();
公共静态列表订阅=新列表();

考虑创建一个搜索文件夹来筛选邮件。您只需在搜索文件夹中查找和处理邮件。

有什么建议吗?@Pratick Kothari您试过在serverfault上问这个问题吗?我想你在那个网站会更幸运。你想把附件保存到一个文件夹吗?或者您正在尝试移动电子邮件?我想按电子邮件的主题将附件保存到文件夹中。您可以提供更详细的信息,以获得更全面的示例。这将导致每隔一段时间轮询服务器,因为您无法订阅Exchange 2007 sp1 EWS托管api中的searchfolders。