gpt4 book ai didi

java - POP3:从 POP3 服务器接收邮件的最佳方式

转载 作者:行者123 更新时间:2023-12-01 11:51:08 26 4
gpt4 key购买 nike

从 POP3 服务器接收邮件的最佳方式是什么?我们只需构建 POP3 接收器客户端,而不是服务器。所以我们不知道服务器的行为(例如:当服务器删除消息等时)。

我知道以下选项,但我无法以适当的理由提出案例。请帮忙。

1.UUID。如果我们保存所有 UUID,这会对性能产生影响吗?

  • 通过Flag.deleted,我们从服务器中删除消息。因此,每次我们轮询服务器时,我们只会收到最新的消息。但是有些POP3服务器会保存邮件,那么我们从服务器上删除邮件会不会出错?

  • 我将邮件保存在数据库中。因此,我统计了所有收到的消息。这就是实现的内容。获取从数据库收到的邮件的计数(x)。获取来自 pop3 文件夹的最新邮件计数(y)。然后检索从 (y-x+1) 到 y 的邮件。这就是我们已经实现的。

  • 从文件夹中获取 header 列表。获取特定日期之后的 header 列表,并将其与过去几天的UUID 列表进行比较。从文件夹中获取剩余 UUID 的数据。我认为这是最好的。但会不会因此而产生性能问题呢?

  • 如有任何帮助,我们将不胜感激。谢谢!

    注意:我使用的是javamail!

    最佳答案

    POP3 服务器有很多“多样性”,因此您可能必须对不同的服务器使用不同的策略。

    听起来您只是想将 POP3 服务器用作“邮件转换”,从服务器中提取所有邮件并将它们保存在其他地方。如果您确定您的程序是唯一从 POP3 文件夹中删除邮件的程序,那么这通常效果很好。将邮件复制出文件夹,将其标记为已删除,然后关闭文件夹。最大的困难是处理失败。您可能想要跟踪文件夹中邮件的 UUID,直到您确定它们已从文件夹中删除,以便您知道您已经复制了哪些邮件。如果您的程序或服务器在您复制并删除所有消息之前出现故障,您可以从上次中断的地方继续。

    如果其他程序正在读取同一 POP3 文件夹中的邮件,这一切都会变得更加复杂。

    关于java - POP3:从 POP3 服务器接收邮件的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28814549/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com