【问题标题】:Re processing emails on error from pop3 account重新处理来自 pop3 帐户的错误电子邮件
【发布时间】:2010-06-10 17:30:06
【问题描述】:

我有一个从 pop3 帐户读取电子邮件的应用程序。当我连接到该帐户时,我会下载所有新电子邮件并处理正文和附件。

如果处理其中一封电子邮件时出现错误,我想在下次连接时再次下载它,但由于我只收到新电子邮件并且失败的电子邮件已经下载,所以我没有收到它,所以我无法尝试再次处理。

我可以使用任何 pop3 命令执行此操作,还是必须在本地存储失败的电子邮件?

【问题讨论】:

    标签: c# email pop3


    【解决方案1】:

    只要您在下载邮件后不删除邮件,它们就应该保留在服务器上,以便您可以再次检索它们。换句话说,这应该默认发生。详情请见RFC 1939

    您使用的是什么 POP3 客户端库?

    编辑:我猜您的 POP3 服务器可能会在您检索一次邮件后删除邮件,尽管这样会很粗鲁。在免费的 POP3 服务器(如 GMail)上运行您的客户端代码,看看它的行为是否有所不同,这可能会很有趣。

    如果您没有对您的 POP3 连接进行 SSL 加密,那么运行 Wireshark 以查看您的客户端和服务器之间的网络究竟发生了什么可能也很有趣。 (POP3 是一种纯文本协议,通过查看网络跟踪很容易理解。)要使用 Wireshark,请在 Capture 菜单下,选择 Options,确保选择了您的接口,输入“tcp port 110”的 Capture Filter ",然后按开始。

    如果您愿意发布您的客户端代码,我们或许可以提供更多帮助。

    【讨论】:

    • 谢谢!我正在使用 Lesnikowski 库。但是请认为您不从服务器中删除电子邮件这一事实并不意味着您会一遍又一遍地收到它们。一旦我收到一封电子邮件 OK,我就不会再从帐户中收到它了 :-(
    • +1 谢谢。我正在使用 SSL(针对 GMAIL 进行测试)。我的客户端代码不是很有趣,正如我告诉你的,我正在使用第三方库,所以我只执行 Connect() Login() GetAccountStat() GetMessage() Close()。图书馆是lesnikowski.com/mail。顺便说一句:邮件仍在收件箱中,但一旦收到一次,我就不会再收到它们,与 Outlook 的任何电子邮件客户端的行为相同。
    猜你喜欢
    • 2013-06-21
    • 2018-12-28
    • 2013-11-25
    • 2013-11-17
    • 1970-01-01
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    相关资源
    最近更新 更多