2012-08-06 16 views
12

E-postaları birbirinden ayırt etmek için garantili benzersiz tanımlayıcı bulmaya çalışıyorum. Şu anda, Microsoft Exchange'e bağlanan bir uygulama yazıyorum, ancak diğer e-posta hizmetlerini destekleyebilmek istiyorum.E-postaların benzersiz kimliği nedir?

Ben benzersiz tanımlayıcı bu özellik ben bunu desteklemek için herhangi bir belge bulamıyorum dışında PR_ENTRYID kullandığı EmailMessage.InternetMessageId olduğunu ve düşünüyorum .

Tüm e-postaların benzersiz bir tanıtıcısı var mı ve (Exchange'de) InternetMessageId mi?

+0

Yalnızca her bir e-postanın güvenilir şekilde oluşturulmuş bir GUID'si varsa ... –

+0

Bir karma algoritmayı deneyebilirsiniz. – KingCronus

+1

'EmailMessage.ItemId.UniqueId' nasıl? – 0014

cevap

10

E-posta için benzersiz bir kimlik belirtilmemiş, Message-ID geldiğiniz kadar yakın. Umabileceğinin en iyisi, sunucu için benzersiz ... ve hatta posta sunucusu türüne ve ne işe yaradığına bağlı.

+1

Sadece Exchange'de eklemek için, EntryID ana klasörle ilgilidir. Bir iletiyi farklı bir klasöre taşımak, Giriş Dizinini değiştirir – Basic

3

Sanırım bu asla% 100 garantili bir şey değil. Bu sayı, zaman içinde geliştirilen ve resmen belirli RFC belgeleri tarafından açıklanan özel E-posta başlıklarından geliyor. Bazen Exchange gibi özel bir servis tarafından sağlanan özel bir bilgi olabilir (sorunuzda ne belirtmiş olduğunuz). Size tam bir cevap veremesem bile, birliğin hiçbir garantisi olmadığının farkında olmanız gerektiğini söyleyebilirim. Daha fazlasını okumak için ben SO Internet Posta Mesajları soyut alanda yukarıda bahsedilen başlıkla ilgili ilginç bir cevap buldu: Is the "Message ID" Email Header unique for each recipient?

1

Nasıl e-posta iletisinin bazı unsurlarını göz önünde bulundurarak bir uniquehash verim verebilecek bir hash function kullanmayla ilgili. GetEmailHash(dateTimeReceived+sender+subject+body)

İlgili konular