【问题标题】:Using Exchange managed api (EWS) to monitor mailbox attachments使用 Exchange 托管 api (EWS) 监控邮箱附件
【发布时间】:2011-08-04 23:38:49
【问题描述】:

我计划创建一个 Windows 服务,该服务将监视交换邮箱中具有特定主题的邮件。此类电子邮件的附件需要存储在网络共享上的特定文件夹中。我相信我可以使用 Exchange Web Services Managed API(使用 Exchange 2007 SP1)来实现这一点。

如果您有这方面的经验,请分享一些示例或链接,而不是下面的 MSDN 链接,这可以让我快速开始。

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

【问题讨论】:

  • 有什么建议吗?
  • @Pratick Kothari 你试过在 serverfault 上问这个问题吗?我想你会在那个网站上获得更多的运气。
  • 您是否尝试将附件保存到文件夹中?还是您要移动电子邮件?
  • 我想将附件按邮件主题保存到文件夹中。
  • 您可以为更全面的示例提供更多详细信息。

标签: exchange-server ews-managed-api


【解决方案1】:

假设这些邮件正在进入您 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>();

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 鉴于您无法订阅 Exchange 2007 sp1 EWS 托管 api 中的搜索文件夹,这将导致每隔一段时间轮询服务器。
    猜你喜欢
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 2015-03-18
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多