IMAP - msgno和uid之间的区别?

时间:2011-11-04 16:11:27

标签: php imap

msgno和uid有什么区别?即使msgs被删除,它们看起来总是一样的!?

2 个答案:

答案 0 :(得分:2)

正如http://www.php.net/manual/en/function.imap-uid.php所说:

此函数返回给定消息序列号的UID。 UID是一种唯一标识符,不会随着时间的推移而发生变化,而只要邮箱内容发生变化,邮件序列号就会发生变化。

答案 1 :(得分:1)

就我而言,uid始终与msgno和message_id

相同

最糟糕的是,当我删除邮件服务器上的邮件时,msgno和UID按到达顺序重新分配

我制作了一个小脚本,用imap_search和imap_overview获取邮件以获取标题,我使用imap_uid($ this-> GetConnection(),$ msgno);强制从MSGNO获取UID,结果如下:

echo“MSGNO:$ msgno UID:$ overview-> uid UIDBYNO:”。 $ mbox-> GetUidByNum($ msgno) “
”;

MSGNO:851 UID:851 UIDBYNO:851 MSGNO:852 UID:852 UIDBYNO:852 MSGNO:853 UID:853 UIDBYNO:853 MSGNO:854 UID:854 UIDBYNO:854 MSGNO:855 UID:855 UIDBYNO:855 MSGNO:856 UID:856 UIDBYNO:856 MSGNO:857 UID:857 UIDBYNO:857

所以 1)uid不是唯一的 2)msgno总是与uid相同

也许邮件服务器不尊重RFC!