2012-08-06 4 views
12

私は電子メールを区別するために保証された一意の識別子を見つけることを試みています。現在、Microsoft Exchangeに接続するアプリケーションを作成していますが、他の電子メールサービスをサポートしたいと考えています。電子メールの固有の識別情報とは何ですか?

私は一意の識別子がEmailMessage.InternetMessageIdであり、このプロパティは、私がこれをサポートするための任意のドキュメントを見つけることができないことを除いて、PR_ENTRYIDを使用していることをことを考える

すべての電子メールには一意の識別子があり、それは(Exchangeの)InternetMessageIdですか?

+0

各電子メールには確実に生成されたGUIDがある場合は... –

+0

ハッシュアルゴリズムを試すことができます。 – KingCronus

+1

'EmailMessage.ItemId.UniqueId'はどうですか? – 0014

答えて

10

電子メールの一意のIDは保証されていませんが、Message-IDは近い将来来ます。あなたが実際に望むことができる最高のものは、サーバーにとって一意です...そして、それはメールサーバーのタイプとそれが何をするかによっても異なります。

+1

これをExchangeに追加するだけで、EntryIDは親フォルダに関連付けられます。メッセージを別のフォルダに移動すると、そのEntryIDが変更されます – Basic

3

私はそれが100%保証されることはないと思います。その数は、特定のRFC文書によって正式に記述された、時間の経過とともに開発された特別な電子メールヘッダーに由来しています。時にはExchangeのような特別なサービス(あなたがあなたの質問で引用したもの)によって提供される特別な情報かもしれません。私は本当に完全な答えを与えることができない場合でも、あなたは単一性の保証がないという事実に気づくべきであることを確かめることができます。さらに読書のために私はSOのインターネットメールメッセージの抽象ドメインで上記の前記ヘッダに関連した上で、興味深い答えを見つけました:Is the "Message ID" Email Header unique for each recipient?

1

どのように電子メールメッセージのいくつかの要素を考慮しuniquehashをもたらす可能性がhash functionの使用に関する。すなわちGetEmailHash(dateTimeReceived+sender+subject+body)

関連する問題