Exchangeのメールボックスに、受信トレイではなくルートの子フォルダがあります。よく知られていないフォルダー名のExchange WebサービスFolderId
EWS Managed APIを使用して、このようなフォルダのIDを取得するにはどうすればよいですか?
私が見つけた例は、WellKnownFolderNamesに関するものだけです。
Exchangeのメールボックスに、受信トレイではなくルートの子フォルダがあります。よく知られていないフォルダー名のExchange WebサービスFolderId
EWS Managed APIを使用して、このようなフォルダのIDを取得するにはどうすればよいですか?
私が見つけた例は、WellKnownFolderNamesに関するものだけです。
FindFoldersメソッドですべてのフォルダを見つけることができます。 WellKnownFolderName.Rootを使用すると、受信トレイのすべてのフォルダが表示されます。 FolderViewを作成して、見たいプロパティを追加する必要があります(IDやDisplayNameなど)。すべてのフォルダを見つけるには、travesalを深く設定します。私の例では、私は、DisplayName「テスト」
//set Server
ExchangeService server = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
server.UseDefaultCredentials = true;
string configUrl = @"https://yourServerAddress.asmx";
server.Url = new Uri(configUrl);
//SetView
FolderView view = new FolderView(100);
view.PropertySet = new PropertySet(BasePropertySet.IdOnly);
view.PropertySet.Add(FolderSchema.DisplayName);
view.Traversal = FolderTraversal.Deep;
FindFoldersResults findFolderResults = server.FindFolders(WellKnownFolderName.Root, view);
//find specific folder
foreach(Folder f in findFolderResults)
{
//show folderId of the folder "test"
if (f.DisplayName == "Test")
Console.WriteLine(f.Id);
}
7プライの答えが有効であるとのフォルダを探していますが、望ましくない結果にLEEDことがあります。
は、あなたがこのような構造を持っているとします
ルート
--folder ----テスト
--folder B
----テスト
彼が提供したコードは、両方のテストフォルダを返します。
パス(フォルダB /テストなど)がわかっている場合は、フォルダパスを繰り返し取得できます。このリンクのメソッドSetFolderHomePageを参照してください:http://www.infinitec.de/post/2011/10/05/Setting-the-Homepage-of-an-Exchange-folder-using-the-EWS-Managed-API.aspx。
var view = new FolderView(1);
view.Traversal = FolderTraversal.Deep;
var filter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Rejected");
var results = Service.FindFolders(WellKnownFolderName.Root, filter, view);
if (results.TotalCount < 1)
throw new Exception("Cannot find Rejected folder");
if (results.TotalCount > 1)
throw new Exception("Multiple Rejected folders");
Rejected = Folder.Bind(Service, results.Folders.Single().Id);
編集:どうやら私のコードは、ネストされたheirarchies上で動作しませんでした
少し遅れますが、次は私が私のフォルダを検索するために使用するものです。 cookiemonsterの提案された編集に従ってラインを追加しました。
私の答えに何か問題がありますか?コメントは、なぜ投票したのかを知るのに役立ちます... –
入れ子のフォルダの修正は何ですか? – sofsntp
@faisantp 'view.Traversal = FolderTraversal.Deep'; –