【问题标题】:Using IMAP delete message isn't removing message from MailSystem.NET使用 IMAP 删除消息不会从 MailSystem.NET 中删除消息
【发布时间】:2011-12-29 17:26:57
【问题描述】:

我正在使用 MailSystem.NET 操作系统库来处理 IMAP。我的客户端程序有问题(用 c# 编写)。它使用 IMAP 库轮询邮件服务器。将消息添加到客户端数据库后,它将消息标记为已删除。但是,我不一定要物理删除该电子邮件,因为其他客户将无法阅读该电子邮件。

所以我调用 DeleteMessage(1, false),它应该将电子邮件标记为已删除,但由于 'expunge' 设置为 false,因此它不会从服务器中物理删除。

如果我打开 Thunderbird(不同的客户端)并连接到邮箱,果然消息已经消失了。但是,我的另一个客户认为该消息仍然存在。邮件计数显示 1. 我如何确保当我从“收件箱”邮件文件夹返回邮件计数时,它只返回那些未标记为删除的邮件,即那些尚未被客户端程序读取的邮件?

【问题讨论】:

  • 这取决于邮件客户端,您无能为力。选择命令 EXISTS 响应始终返回邮箱中的邮件数(不检查任何邮件标志)。
  • 我如何获取收件箱中未设置“已删除”标志的电子邮件的消息计数?
  • 可能最快的方法是使用 IMAP 搜索。您可以搜索“未删除”消息。 UNDELETED 搜索键 - 未设置 \Deleted 标志的邮件。在 RFC 3501 6.4.4 中定义。

标签: .net email imap


【解决方案1】:

正如 Ivar 在他的评论中提到的,您可以使用 UNDELETED 来搜索邮箱中的邮件。但是,我发现“未删除”搜索标志在我一直使用的 IMAP 库上工作得更好。

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 2019-03-31
    • 2022-06-11
    • 2017-06-06
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多