【发布时间】:2023-03-03 09:25:21
【问题描述】:
我需要通过 IMAP 从邮件服务器读取邮件并存储在数据库中。我的问题是
- 我如何知道哪些邮件已经存储在 DB 中,哪些是现在。基于时间戳?但在这种情况下,我必须遍历所有邮件并获取时间戳。我不想循环浏览或获取所有邮件,因为邮箱会很大。
我应该采取什么方法? 我应该将新邮件转发到临时帐户 - 从该帐户读取然后删除该邮件吗?
请尽快告诉我
谢谢
【问题讨论】:
我需要通过 IMAP 从邮件服务器读取邮件并存储在数据库中。我的问题是
我应该采取什么方法? 我应该将新邮件转发到临时帐户 - 从该帐户读取然后删除该邮件吗?
请尽快告诉我
谢谢
【问题讨论】:
问题是您需要将这些电子邮件保留在 IMAP 服务器上吗?或者您可以在下载后直接删除它们吗?
当每封电子邮件到达邮箱时,所有 IMAP 服务器都会为其分配一个特殊的唯一 ID (uid)。 Uid 按递增顺序分配。在大多数服务器的情况下,这些 uid 在会话之间也是稳定的,并且永远不会改变。
这意味着要知道哪些电子邮件是新的,您只需记住您之前下载的最后一个 uid。
要阅读电子邮件,您需要IMAP library,我推荐这个:http://www.limilabs.com/mail,但请注意,我参与了开发,它是一个商业产品。
这篇文章展示了如何get new emails from the server 和details on unique id in IMAP
【讨论】: