2012-08-06 19 views
12

我試圖找到保證唯一標識符來區分對方的電子郵件。目前,我正在編寫一個連接到Microsoft Exchange的應用程序,但是我希望能夠支持其他電子郵件服務。什麼是電子郵件的唯一標識?

認爲的唯一標識符是EmailMessage.InternetMessageId,那這個屬性使用PR_ENTRYID,但我找不到任何文件來支持這一點。

是否所有的電子郵件都有唯一的標識符,並且(在Exchange中)InternetMessageId?

+0

如果只有每個電子郵件都有可靠生成的GUID ... – 2012-08-06 20:57:52

+0

你可以嘗試一種哈希算法。 – KingCronus 2012-08-06 20:58:55

+1

'EmailMessage.ItemId.UniqueId'如何? – 0014 2016-05-25 21:06:50

回答

10

對於電子郵件,沒有保證唯一的ID,Message-ID與您近距離接近。實際上,希望最好的服務器是獨一無二的......甚至這取決於郵件服務器的類型以及它的功能。

+1

只需在Exchange中添加EntryID即可與父文件夾相關聯。將郵件移動到其他文件夾將更改其EntryID – Basic 2015-05-07 16:35:16

3

我想這是從來沒有100%保證。我的意思是,這個數字來自特定的電子郵件標題,並在特定的RFC文檔中正式描述。有時它可能是一個特殊服務提供的特殊信息,如Exchange(您在問題中引用的內容)。即使我不能給你一個真正完整的答案,我可以確定你應該知道你不能保證唯一性的事實。爲進一步閱讀中,我發現一個有趣的答案就因此與上面說的頭在Internet郵件的抽象域:Is the "Message ID" Email Header unique for each recipient?

1

如何使用hash function可能產生uniquehash考慮到電子郵件的一些內容。即GetEmailHash(dateTimeReceived+sender+subject+body)

相關問題