17

一連のメールを接続/スレッド化する最善の方法を見つけようとしています。これは非常によくある問題のようで、他の人がどのように対処したかについての情報を簡単に見つけることができなかったことに驚きました。私が見つけた唯一のものは、JWZ スレッド化に関する投稿で、1 つのメールでスレッドを一緒に解析することに関心があるように見えました。誰かが私にいくつかの現在の解決策を指摘できるかどうか疑問に思っていました.

私はthinkbot griddler gemを使用して、受信メールをモデルMessage(s)と別のモデルContact(s)に処理しています。返信を保存するための 3 つ目のモデルがありますReply

私の現在の考えは、それらを一意の連絡先と件名でスレッド化することです. ただし、件名は少し変更されます。例: "この件名" -> "Re: re: この件名" 正規表現を使用して "re:" を解析するか、amatchなどを使用して文字列比較を行うことができますか?

しかし、2 か月後に同じユーザーに同じ件名が表示された場合はどうすればよいでしょうか。また、現在の日付に関するいくつかのロジックを追加して、スレッドが最近の電子メールのみを使用するようにします。次に、電子メール ヘッダー自体に保存されている別の便利なものがあるのでしょうか?

  • ユーザー (固有の電子メール アドレスによる)
  • 固有の件名 (regex re: processing issues?)
  • 現在の日付 (メールは互いに相対的な日付である必要があります)
  • 電子メールのヘッダーで探すべきその他の手がかりはありますか?

私はそれを行う方法の大まかな考えを持っています.現在の実装をいくつか見たいだけですが、何も見つからないようです.

どんなポインタでも大歓迎です!

4

2 に答える 2

7

電子メール スレッドはリンクされたリストであり、ヘッダーの情報には、そのコンポーネント パーツからリストを再構築するのに十分な情報が含まれています。

電子メール ヘッダーをイントロスペクトし、特定のヘッダーを探します。

使用する主なものはMessage-IDIn-Reply-ToおよびReferencesです。これらのヘッダーは、返信されたメッセージと、メール スレッド自体にとって重要な他の ID に関する情報を提供します。

メールのヘッダーに関する情報を見つける最も簡単な方法は、Gmail で [詳細] メニューから [元のメッセージ] を開くことです。

于 2015-06-19T05:45:08.653 に答える