当通过 POP3 访问电子邮件时,许多电子邮件客户端使用服务器分配的唯一 ID 来识别已下载的消息(如图所示POP3UIDL 命令 - 我将其称为 UID)。在我的邮件服务器上,使用 Web 界面将电子邮件移动到不同的文件夹可使电子邮件的 UID 保持不变,正如预期的那样。
如果使用 iPhone(我认为是 3GS)通过 IMAP 访问电子邮件帐户,并且用户“删除”了一封电子邮件,则该邮件会被移动到服务器上另一个非特殊文件夹“已删除邮件”。问题是,这变化电子邮件的 UID,因此任何 POP3 客户端都会再次下载该消息。
有人见过这种情况吗?有没有办法避免将邮件移至“已删除邮件”文件夹时 UID 发生变化?
更新:
我联系了电子邮件提供商的服务台;这是一个相当匿名的热线,但至少有一个。他们声称 iPhone 通过复制邮件将邮件移动到另一个文件夹,然后删除旧邮件。如上所述,同样的效果不是直接使用他们的 Web 界面时会出现这种情况。他们似乎声称这是 IMAP 的限制。这是真的吗?IMAP 不允许在文件夹之间进行“移动”操作吗?我读到过 IMAP 中的消息 ID 依赖于文件夹,但这肯定不意味着 POP3 UID 也必须改变……
答案1
这是真的吗,IMAP 不允许文件夹之间的“移动”操作?
是的;IMAP(截至v4rev1) 不包含MOVE
命令。
但这并不意味着 POP3 UID 也必须改变……
当你在 IMAP 中执行“移动”操作时,通过复制邮件并删除原始邮件,你实际上是在创建一个新的内容相同的邮件。由于这是一封新邮件,因此它在 IMAP 和 POP3 中都会获得一个新的 UID。