1

以下に示すように、私のテスト コードは、ExchangeVersion.Exchange2010 を使用して電子メールを削除します。

        var finalsearchFilter = new SearchFilter.SearchFilterCollection(LogicalOperator.And)
                {
                    new SearchFilter.IsGreaterThan(EmailMessageSchema.DateTimeReceived, DateTime.Now.AddDays(-15)),
                };

        view.OrderBy.Add(ItemSchema.DateTimeReceived, SortDirection.Descending);

        view.Traversal = ItemTraversal.Shallow;
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
        service.Credentials = new WebCredentials("user@example.com", "password", "domain");
        service.AutodiscoverUrl("user@example.com");
        FindItemsResults<Item> items = service.FindItems(new FolderId(WellKnownFolderName.Inbox, new Mailbox("mailboxName@example.com")), finalsearchFilter, view);

        if (items.Count() != 0)
        {
            IEnumerable<ItemId> itemIds = from p in items.Items select p.Id;
            service.DeleteItems(itemIds, DeleteMode.SoftDelete, null, null);
        }

しかし、2010 を 2013 に変更すると、すぐにエラーが表示されます。

Microsoft.Exchange.WebServices.Data.ServiceVersionException : Exchange Server doesn't support the requested version.

誰かが私が見逃しているものの正しい方向を教えてくれますか? msdn のチュートリアルを調べたところ、exchangeservice オブジェクトを呼び出すときに 2010 の参照と、2007 の参照が使用されています。私は他の投稿を見たことがありますが、特にExchangeVersion.Exchange2010中に入れる必要がありますが、すでに持っています。それが役立つ場合は、最新のnugetパッケージ交換Webサービスもダウンロードしました。これが、コードが存在することを認識する方法ですExchange2013

4

1 に答える 1