2013-07-25 1 views
8

私はサポートシステムを作成しています。これはEWSを初めて使用したときです。これまで私はそれでかなり成功しています。私は必要な情報を抽出することができます。 emaislを送信し、すべてがうまくいきます。私は小さな頭痛が1つあります。電子メールが実際に返信であるかどうかを確認する手段はありますか?このアプリの基本的なアイデアは誰かが電子メールを送信することです。私たちは返信し、参照番号を与えます。これは完了し、素晴らしい仕事です。今、彼らがこの同じアドレスに返信する場合、私たちはデータベースで少し違うものを記録する必要があります。したがって、電子メールが返信であるかどうかを知るには、魔法のような方法が必要です。これまでのところ私は立ち往生しています。電子メールがews C#を使用して返信/応答であるかどうかを判断する方法はありますか?

私はプログラミング業界では新しく、グーグルグーグルでは何も役に立たないので、どんな提案も大変ありがとうございます。ここにコードセクションが含まれています

FindItemsResults<Item> findResults = service.FindItems(WellKnownFolderName.Inbox, view); 

     foreach (Item myItem in findResults.Items.Where(i => i is EmailMessage)) 
     { 
      var mailItem = myItem as EmailMessage; 
      if (!mailItem.IsRead) 
      { 
       // load primary properties and get a text body type 
       mailItem.Load(propertySet); 
       // Update the item to isRead in email 
       mailItem.IsRead = true; 
       mailItem.Update(ConflictResolutionMode.AutoResolve); 

       //Check if it is a reply and mark the msg as such 

       // add message to list 
       SupportEmailMessage msg = new SupportEmailMessage(); 
       msg.Subject = mailItem.Subject; 
       msg.MessageBody = mailItem.Body.Text; 
       msg.DateSent = mailItem.DateTimeSent; 
       msg.Sender = mailItem.Sender.Address; 
       toReturnList.Add(msg); 
      } 

     } 
+1

は、あなたができる 'msg.Subject.Contains( "RE:")' ..申し訳ありませんそれは良いアイデアです実際 – Sayse

+0

のに助け+1にすることはできません。 ..なぜ私はそれを考えなかったでしょう...おそらく睡眠不足。理論的に私はこれを試して実行することができます。うまくいけばいくつかの魔法を働かせます... – KapteinMarshall

+0

母私は明らかな限界があるので冗談を言っていました。あなたが直接の返事を探しているなら、あなたは 'StartsWith(" RE: ")'を実行することができます。私はそう思っていますが、それが可能ならもっと良い方法があると確信しています – Sayse

答えて

1

だからコメントから。本当に決定的な方法はないようです。人々のコメントは私がこの答えを得て、このスレッドを閉じるのを助けました。私はここで言い直して投稿します。だから最初。すべてのあなたの答えをありがとう。

最も簡単な方法は、あなたの主題に良い参照番号を含めることです。 "Supp-1234"など

ここで、見出しの参照番号を確認できます。それがあれば。それはおそらく応答です。 REをチェックすることもオプションですが、やや効果がありません。バマーは、クライアントが件名見出しから参照番号/ REを取り除くことができるということです。それらの人のために。あなたの問題は記録されません。またはあなたが知っている。何でもしてください。 :)

もう一度すべての回答に感謝します。あなたたちは本当に私をたくさん助けました!

5

InReplyToは、このメッセージが返信するアイテムの識別子を含む文字列値です。 nullの場合、メッセージは返信ではありません。

var mailItem = myItem as EmailMessage; 
if (mailItem.InReplyTo != null) 
{ 
    // this is a reply message 
    . 
    . 
    . 
} 

さらに詳細:MSDN InReplyTo

+0

これはMS Exchangeにのみ当てはまりますか? – GETah

+0

電子メールに返信するときにユーザーが件名を変更した場合、InReplyToは空です – Chethan

関連する問題