获得独特的电子邮件ID与PHP IMAP(Getting unique email id with

2019-07-19 23:10发布

我如何可以计算出在IMAP帐户的每封电子邮件的唯一ID字符串?

我想提出一个脚本,它必须频繁地从一个IMAP帐户复制所有失踪邮件到另一个。 我想避免每次更新使重复的,所以我必须确定什么是对一个帐户,什么是另一方。

并非所有的电子邮件有一个message_id ,我看不出之间的区别是什么message_iduid是-任何人可以告诉我吗?

在我看来,该message_id不改变使用时imap_append -任何人可以证实?

当生成每个邮件的唯一ID字符串还有很多其他的选择不仅仅是消息ID,FX电子邮件标题和日期,但我不知道选择什么样的: http://www.php.net/manual/en/ function.imap-headerinfo.php

Answer 1:

UID是邮箱中是唯一的,但邮箱之间不映射,所以是没有用的邮箱之间的匹配电子邮件。

MESSAGE_ID旨在为所有电子邮件全球唯一的由发送邮件服务器生成。 如果服务器配置正确,每次发送的消息将有一个MESSAGE_ID,而这可以用来匹配整个邮箱的电子邮件。 然而,严重的配置服务器可能不分配MESSAGE_ID。 在这种情况下,senderaddress和uDate公司的散列一直被证明是我唯一的 - 如果邮件来自同一人在同一微秒来了,这会是相同的消息。 注 - 使用发件人,而不是从 - 从可以伪造发送者相比更容易。



Answer 2:

据我可以如下生成的唯一ID:

关键:邮件具有划时代时间(日期字段)

但在同一时间,用户可以得到多个邮件。

关键:邮件+ MailSize划时代时间

在特定时间reciever ID可以收到同样大小的diferent邮件

KEY:邮件的出现时间+ MailSize + Recieveing服务器IP(可从收到获得:场)

在特定时间reciever ID可以收到来自同一IP也同样大小的diferent邮件。

关键:邮件+ MailSize + Recieveing服务器IP的出现时间(从收到获得:场)+邮件的md5sum。

duplicacy此键的可能性是非常非常非常低。

消息ID通常是对于其他发送的消息,或者可以是一些所述装置的标识符,完全取决于域,并且可以是相同的不同的邮件和可能可能不完全存在。

UID是由IMAP服务器跟踪邮件身份的东西。 但如果在之间的邮件已被删除或移动和马车服务器代码堂妹,它可能是一个不同的邮件可能会使用相同的UID分配。



文章来源: Getting unique email id with IMAP in PHP
标签: php imap