1

我需要通过 IMAP 从邮件服务器读取邮件并存储在数据库中。我的问题是

  1. 我如何知道哪些邮件已经存储在数据库中,哪些是现在。基于时间戳?但在这种情况下,我必须遍历所有邮件并获取时间戳。我不想循环访问或获取所有邮件,因为邮箱会很大。

我应该采取什么方法?我应该将新邮件转发到临时帐户 - 从该帐户读取然后删除该邮件吗?

请尽快告诉我

谢谢

4

1 回答 1

0

问题是您是否需要在 IMAP 服务器上保留这些电子邮件?或者你可以在下载后简单地删除它们吗?

当每封电子邮件到达邮箱时,所有 IMAP 服务器都会为其分配一个特殊的唯一 ID (uid)。Uid 是按递增顺序分配的。在大多数服务器的情况下,这些 uid 在会话之间也是稳定的,并且永远不会改变。

这意味着要知道哪些电子邮件是新的,您只需要记住您之前下载的最后一个 uid

要阅读电子邮件,您需要一个IMAP 库,我推荐这个:http ://www.limilabs.com/mail ,但请注意,我参与了开发,它是一个商业产品。

这是展示如何从服务器获取新电子邮件以及IMAP 中唯一 ID 的详细信息的文章

于 2012-08-14T13:42:24.777 回答