除了下载每封邮件的实际内容之外,有没有办法确定两个 IMAP 服务器上的电子邮件是否相同?

除了下载每封邮件的实际内容之外,有没有办法确定两个 IMAP 服务器上的电子邮件是否相同?

背景是,我正在尝试在两个 IMAP 服务器之间迁移邮件,并且我想确保在重试的情况下不会再次迁移重复的邮件。我想要查询每个 IMAP 服务器以获取与原始电子邮件的 md5 等效的内容,这样我就可以比较哪些电子邮件已迁移,哪些尚未迁移。

在 IMAP4 中可以实现类似的功能吗?我看到了 UID,但它似乎只是服务器独有的,并不是内容真正的唯一标识符。

答案1

消息 ID 应该是唯一的,但这根本无法保证,而且世界上有很多损坏的邮件程序。如果您必须绝对确定,请自己验证校验和,在其他情况下,消息 ID 可能并且应该足够了。

答案2

仍需要进行大量下载,但请尝试获取BODY.PEEK[HEADER]消息以仅获取标题部分,然后比较标题Message-ID

答案3

您可能想要检查“Message-ID”标头值。这与整个消息的 MD5 并不完全相同,但每条唯一消息都应具有唯一的 ID 值;因此,可以安全地假设,如果您在目标服务器上看到消息 ID,则该消息已被复制。

相关内容