2014-09-26 82 views
0

我是使用EWS的郵箱中的查詢電子郵件。我收到一封電子郵件列表。 我想知道如何判斷電子郵件是否回覆郵箱中的早期郵件?基本上我想將電子郵件分組,如Outlook中的「視圖爲對話」視圖。我如何鏈接這樣的電子郵件?如何判斷電子郵件是否是使用EWS回覆另一封電子郵件

謝謝。如果您在使用2010或更高版本,那麼你可以使用EWS對話操作做

回答

1

即見http://msdn.microsoft.com/en-us/library/office/dn610351(v=exchg.150).aspx

可以使用的就是抓住傳輸頭從extedned屬性的另一種方法,並解析出InReplyTo標題,例如

 ItemView view = new ItemView(100); 
     view.PropertySet = new PropertySet(PropertySet.IdOnly); 
     PropertySet PropSet = new PropertySet(); 
     PropSet.Add(ItemSchema.HasAttachments); 
     PropSet.Add(ItemSchema.Body); 
     PropSet.Add(ItemSchema.DisplayTo); 
     PropSet.Add(ItemSchema.IsDraft); 
     PropSet.Add(ItemSchema.DateTimeCreated); 
     PropSet.Add(ItemSchema.DateTimeReceived); 
     ExtendedPropertyDefinition PR_TRANSPORT_MESSAGE_HEADERS = new ExtendedPropertyDefinition(0x007D, MapiPropertyType.String); 
     PropSet.Add(PR_TRANSPORT_MESSAGE_HEADERS); 
     FindItemsResults<Item> findResults; 
     List<EmailMessage> emails = new List<EmailMessage>(); 
     do 
     { 
      findResults = service.FindItems(WellKnownFolderName.Inbox, view); 
      if (findResults.Items.Count > 0) 
      { 
       service.LoadPropertiesForItems(findResults.Items, PropSet); 
       foreach (var item in findResults.Items) 
       { 
        String Headers = ""; 
        if (item.TryGetProperty(PR_TRANSPORT_MESSAGE_HEADERS, out Headers)) 
        { 
         Int32 slen = Headers.IndexOf("In-Reply-To:"); 
         if (slen > 0) 
         { 
          Int32 elen = Headers.IndexOf("\r\n", (slen + 12)); 
          Console.WriteLine("InReponse to : " + Headers.Substring((slen+12),elen-(slen+12))); 
         } 

        }       
       } 
      } 
      view.Offset += findResults.Items.Count; 
     } while (findResults.MoreAvailable); 

乾杯 格倫

相關問題