我有一个 dovecot 服务器 (maildir)。一些客户端通过桌面客户端 (POP3) 和智能手机 (IMAP) 查看邮件。问题是,当通过 POP3 下载邮件并将其从新文件夹移动到当前文件夹时,IMAP 客户端在收到邮件时不会通知(邮件会默默接收,并且已标记为已读)。我知道 POP3 不关心已读/未读标志,它只是在下载邮件时将邮件移动到当前文件夹中,但为什么 IMAP 会将邮件显示为已读?这里的目标是让 POP3 和 IMAP 分别处理已读/未读状态。有什么办法吗?
勾选了保留消息的选项,每条消息都通过 POP3 和 IMAP 接收,但从 POP3 检索邮件后,在 IMAP 中显示为已读。在 dovecot 中设置 pop3_no_flag_updates = no。如果我将其设置为 yes,问题就解决了,但所有邮件都保留在“新”文件夹中。它不会被移动到 cur。
答案1
您说如果设置pop3_no_flag_updates=yes
邮件保留在 /new 文件夹中,我相信这是设计使然。
一个原因是原始 maildir 规范规定新文件夹中的邮件不能有标志。因此,如果它没有设置标志,就没有理由将其移动到 /cur(如果它不做部分工作,我怀疑它不会做任何工作)。例如(来自 courier邮件目录页):
从 maildirs 读取邮件的应用程序应按照以下顺序执行:
打开 maildir 或 maildir 文件夹时,读取 tmp 子目录并删除其中至少 36 小时的所有文件。
在新子目录中查找新邮件。将 new/filename 重命名为 cur/filename:2,info。此处,info 表示邮件的状态,它由零个或多个布尔标志组成,这些标志从以下选项中选择:“D”- 这是“草稿”邮件,“R”- 此邮件已被回复,“S”- 此邮件已被查看(已读过),“T”- 此邮件已被标记为已删除(已删除),但尚未移除(只需删除邮件文件即可从邮件目录中移除邮件),“F”- 此邮件已被用户标记,用于某种目的。这些标志必须按字母顺序存储。新邮件仅包含 :2 后缀,没有标志,表示邮件未被查看、回复、标记或删除。
为什么它不能将它移动到 cur 无论如何..我不知道,但我怀疑它可能与 RFC 有关,你可能想问蒂莫
答案2
是的,使用 POP3 时,请确保选中在服务器上保留消息的选项。因为当 pop3 检查消息时,从技术上讲,它会读取消息。