2012-06-11 12 views
5

件名に基づいてメールボックスから電子メールを取得できます。受け取った日付に基づいて電子メールを取得するための形式がわからないのですか?Exchange Webサービスを使用してC#で特定の日付の電子メールを取得する

  string message = string.Empty; 
      Item item = Item.Bind(exService, messageID, PropertySet.FirstClassProperties); 

      if (item is EmailMessage) 
      { 
       EmailMessage em = (EmailMessage)item; 

       string strMsg = string.Empty; 
       //strMsg = strMsg + item.Id.ToString(); 
       //strMsg = strMsg + item.DateTimeReceived; 
       strMsg = strMsg + "*********************** New Fiscal Email received on " + item.DateTimeReceived +" ************************************" + Environment.NewLine; 

       if (em.Body.Text.Contains("BRANDON")) 
       { 
        strMsg = strMsg + em.Body.Text.ToString(); 
       } 
       strMsg = strMsg + "*********************** End of Email Body ************************************" + Environment.NewLine; 
       message = strMsg; 

      } 
+0

上記のコードは、件名で検索していません。 'EntryID'でメッセージを取得しています。 – SliverNinja

答えて

3

SearchFilter examplesをご覧ください。フィルタ条件が必要です。ItemSchema.DateTimeReceived

+0

SliverNinjaありがとう! – acadia

+0

しかし、私は渡すべき形式を得ることができません。 '2012年5月12日'にしようとするとデータを取得しません – acadia

+1

[ここをクリック](http://msdn.microsoft.com/en-us/library/ee693615.aspx) " –

-2

これは動作します。

if (em.DateTimeReceived.Equals(**Date you want to search**)) 
       { 
        strMsg = strMsg + em.Body.Text.ToString(); 
       } 
+1

これはEWSを照会しません!それはとにかくすべての電子メールをダウンロードします。 質問で尋ねられたことは答えません。 – Rahatur

16

私はSilverNinjaがあなたに正しい方法を言ったと思います。 次のような項目を検索する必要があります。

DateTime searchdate = new DateTime (2012,7,6) //Year, month, day 
SearchFilter greaterthanfilter = new SearchFilter.IsGreaterThanOrEqualTo(ItemSchema.DateTimeReceived, searchdate); 
SearchFilter lessthanfilter = new SearchFilter.IsLessThan(ItemSchema.DateTimeReceived, searchdate.AddDays(1)); 
SearchFilter filter = new SearchFilter.SearchFilterCollection(LogicalOperator.And, greaterthanfilter, lessthanfilter); 
Folder folder = Folder.Bind(this.m_Service, WellKnownFolderName.MsgFolderRoot); //Or the folder you want to search in 
FindItemsResults<Item> results = folder.FindItems(filter, new ItemView(1000)); 

「results.Itemsは、」あなたが探している日にreciviedされている最初の1000個のアイテムを返します。

関連する問題