C#:如何跟踪文件夹之间的邮件的UID?

问题描述 投票:0回答:2

我正在将邮件从收件箱文件夹移动到新文件夹。一段时间后,我需要将其中一些消息(不是全部)移到新文件夹中。问题是每次我移动一条消息时,ui​​d都会更改。如何在不发送错误信息的情况下执行此操作?

c# email imap pop3 uid
2个回答
0
投票

[您正在“移动”还涉及将INSERT插入数据库以跟踪UID?如果是,请监视自动生成的PK。


0
投票

如果服务器支持UIDPLUS(几乎全部支持),而您自己正在移动或复制消息,则在COPYUID响应中复制或移动新的UID时,服务器会为您提供新的UID。您需要记录下来。

来自IMAP MOVE RFC6851的示例:

   C: a UID MOVE 42:69 foo
   S: * OK [COPYUID 432432 42:69 1202:1229]
   S: * 22 EXPUNGE
   S: (more expunges)
   S: a OK Done

COPYUID响应包括目标邮箱的UIDVALIDITY,源消息的UID集和目标消息的UID集。

[如果其他过程正在移动,则无法保证相同的消息,并且您必须根据它们的内容(例如,Message-ID标头,日期时间,哈希等)来跟踪它们。 )

© www.soinside.com 2019 - 2024. All rights reserved.