【发布时间】:2013-06-06 20:29:18
【问题描述】:
我正在开发一个可以管理多个邮箱的电子邮件管理器。 这是我的场景:我通过邮箱获取邮件并将它们的属性存储在数据库中,包括 uid。邮箱可以配置为imap或者pop3协议下载,这取决于邮箱本身。
POP3 uids: 消息的唯一标识是一个任意的服务器确定的字符串,由 0x21 到 0x7E 范围内的 1 到 70 个字符组成,它唯一地标识了其中的一条消息一个邮件投递,并且跨会话持续存在。
IMAP uids: 分配给每条消息的 32 位值,当与唯一标识符有效性值(见下文)一起使用时,形成一个 64 位值,不得引用邮箱中的任何其他邮件或任何具有相同名称的后续邮箱。
因此,几乎不可能找到两个相同的 POP3 uid,尽管是在不同的邮箱之间。但更有可能发生在 IMAP uid 上。
所以,我需要确定 uid 都是不同的。 我不需要代码来做,我只需要知道能不能做,怎么做,需要一个正确的推理做。
【问题讨论】:
-
为什么不将 uid 与标识更正/服务器/用户/等的 id 一起存储。
-
问题是我不能改变表结构,它是:timestamp,from,to,cc,subject,body,attachment。否则这将是一个好主意。 @RowlandShaw
-
所以,将 accountid 连接到 UID。
- -