【问题标题】:IMAP Library for fetching new mails用于获取新电子邮件的 IMAP 库
【发布时间】:2023-03-03 09:25:21
【问题描述】:

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

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

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

请尽快告诉我

谢谢

【问题讨论】:

    标签: c# imap


    【解决方案1】:

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

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

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

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

    这篇文章展示了如何get new emails from the serverdetails on unique id in IMAP

    【讨论】:

    • 我正在为 IMAP 构建库我的搜索命令为收件箱文件夹工作文件它返回给我一个可用于获取邮件的数字。但是,当我尝试搜索已发送的项目时,它不起作用,它不会给出错误,而只是返回没有任何数字的 Search OK。你能指出为什么这种行为。我正在访问 Exchange 2010。我的搜索命令类似于 search all HEADER Message-ID "" 这正是 support.microsoft.com/kb/302965 中描述的方式,但我找不到解决方案。请帮助它非常紧急。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 2013-04-30
    • 2011-05-30
    • 2012-08-14
    相关资源
    最近更新 更多