2012-06-11 17 views
5

का उपयोग कर सी # में किसी विशिष्ट तिथि के लिए ईमेल प्राप्त करना मैं किसी विषय के आधार पर मेलबॉक्स से ईमेल प्राप्त करने में सक्षम हूं। मुझे यकीन नहीं है कि प्राप्त तिथि के आधार पर ईमेल लाने के लिए प्रारूप क्या है?एक्सचेंज वेब सर्विसेज

  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

हालांकि, मैं यह नहीं समझ पा रहा हूं कि मुझे कौन सा प्रारूप पारित करना चाहिए। जब मैं '5/12/2012' कोशिश करता हूं तो यह डेटा – 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

यह ईडब्ल्यूएस से पूछताछ नहीं करेगा! यह वैसे भी सभी ईमेल डाउनलोड करेगा। यह सवाल नहीं है कि सवाल में क्या पूछा गया था। – Rahatur

16

मुझे लगता है कि जिस तरह से सिल्वरनिंजा ने आपको बताया वह सही तरीका है। आप इस तरह के आइटम खोज करनी चाहिए:

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" पहले 1000 आइटम जो दिन आप देख रहे हैं पर recivied रहे हैं वापस आ जाएगी।

संबंधित मुद्दे