2017-05-16 23 views
0

現在、一般的な "受信トレイ"フォルダからExchangeサーバー上のすべての電子メールを読み取るコードブロックがあります。下の行は、特定のフォルダにExchangeサーバーの特定のフォルダを検索

FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, new ItemView(250)); 

質問 は、私は、一般的な受信トレイの代わりにフォルダを作成したユーザーを検索できるようにこのコードを適応させることが可能であるにアクセスしている何ですか?たとえば、 "Test Folder"というフォルダを作成しましたが、ここですべての電子メールを読むことができます。

は、私が検索フィルタを追加しようとしているが、これは現時点では結果を返しません:

あなたは、あなたは、FindItem関数の方法でそれを使用するか、最初の質問でユーザが作成したフォルダのフォルダIDを見つける必要があり
SearchFilter searchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName, "Test Folder"); 

FindItemsResults<Item> findResults = exchange.FindItems(WellKnownFolderName.Inbox, searchFilter, new ItemView(250)); 

答えて

1

FolderIdを使用してサービスクラスに追加するか、フォルダ自体でFindItemメソッドを使用します。例えば、あなたがパスに変換し、フォルダが受信トレイ内であったのであれば、あなたが

GetFolderFromPath(サービス、「メールボックスの@ domaimを使用することになり、そのパス

 internal static Folder GetFolderFromPath(ExchangeService service,String MailboxName,String FolderPath) 
{ 
    FolderId folderid = new FolderId(WellKnownFolderName.MsgFolderRoot,MailboxName); 
    Folder tfTargetFolder = Folder.Bind(service,folderid); 
    PropertySet psPropset = new PropertySet(BasePropertySet.FirstClassProperties); 
    String[] fldArray = FolderPath.Split('\\'); 
    for (Int32 lint = 1; lint < fldArray.Length; lint++) { 
     FolderView fvFolderView = new FolderView(1); 
     fvFolderView.PropertySet = psPropset; 
     SearchFilter SfSearchFilter = new SearchFilter.IsEqualTo(FolderSchema.DisplayName,fldArray[lint]); 
     FindFoldersResults findFolderResults = service.FindFolders(tfTargetFolder.Id,SfSearchFilter,fvFolderView); 
     if (findFolderResults.TotalCount > 0){ 
     foreach(Folder folder in findFolderResults.Folders){ 
      tfTargetFolder = folder;     
      } 
     } 
     else{ 
      tfTargetFolder = null; 
      break; 
     }  
    } 
    if (tfTargetFolder != null) 
    { 
     return tfTargetFolder; 
    } 
    else 
    { 
     throw new Exception("Folder Not found"); 
    } 
} 

を検索することができますフォルダを作成したユーザーを検索します。 com "、" \ Inbox \ folder ")、そのフォルダを返す必要があります。

+0

よろしくお願いします。これは、アプリケーションの効率的な実行に役立ちます – Crezzer7

関連する問題