我如何可以计算出在IMAP帐户的每封电子邮件的唯一ID字符串?
我想提出一个脚本,它必须频繁地从一个IMAP帐户复制所有失踪邮件到另一个。 我想避免每次更新使重复的,所以我必须确定什么是对一个帐户,什么是另一方。
并非所有的电子邮件有一个message_id
,我看不出之间的区别是什么message_id
和uid
是-任何人可以告诉我吗?
在我看来,该message_id
不改变使用时imap_append -任何人可以证实?
当生成每个邮件的唯一ID字符串还有很多其他的选择不仅仅是消息ID,FX电子邮件标题和日期,但我不知道选择什么样的: http://www.php.net/manual/en/ function.imap-headerinfo.php
UID是邮箱中是唯一的,但邮箱之间不映射,所以是没有用的邮箱之间的匹配电子邮件。
MESSAGE_ID旨在为所有电子邮件全球唯一的由发送邮件服务器生成。 如果服务器配置正确,每次发送的消息将有一个MESSAGE_ID,而这可以用来匹配整个邮箱的电子邮件。 然而,严重的配置服务器可能不分配MESSAGE_ID。 在这种情况下,senderaddress和uDate公司的散列一直被证明是我唯一的 - 如果邮件来自同一人在同一微秒来了,这会是相同的消息。 注 - 使用发件人,而不是从 - 从可以伪造发送者相比更容易。
据我可以如下生成的唯一ID:
关键:邮件具有划时代时间(日期字段)
但在同一时间,用户可以得到多个邮件。
关键:邮件+ MailSize划时代时间
在特定时间reciever ID可以收到同样大小的diferent邮件
KEY:邮件的出现时间+ MailSize + Recieveing服务器IP(可从收到获得:场)
在特定时间reciever ID可以收到来自同一IP也同样大小的diferent邮件。
关键:邮件+ MailSize + Recieveing服务器IP的出现时间(从收到获得:场)+邮件的md5sum。
duplicacy此键的可能性是非常非常非常低。
消息ID通常是对于其他发送的消息,或者可以是一些所述装置的标识符,完全取决于域,并且可以是相同的不同的邮件和可能可能不完全存在。
UID是由IMAP服务器跟踪邮件身份的东西。 但如果在之间的邮件已被删除或移动和马车服务器代码堂妹,它可能是一个不同的邮件可能会使用相同的UID分配。