我想知道服务器如何使用 IMAP 或 POP 将电子邮件标记为已读和未读。
我已经登录到我的服务器(使用 cPanel)并导航到我的mail
目录并下载了相同的电子邮件文件(已读和未读),并对它们使用了文件比较器,结果发现两个电子邮件文件是相同的。
如果我将所有mail
目录移动到不同的服务器,它如何知道哪些电子邮件已被阅读?
更新
我从这两个文件中注意到的一件事是,内容完全相同,但文件名、字母有细微的变化年代被添加在最后。
Unread: 1507345332.M378557P5...,S=78315,W=80152-2,c
Read: 1507345332.M378557P5...,S=78315,W=80152-2,Sc
继关联由@rAlen 提供,我能够看到年代代表已看过并在阅读电子邮件后立即添加。
答案1
cPanel 使用 dovecot 作为 POP3/IMAP 服务器。
已读邮件将从“新”文件夹移至“当前”文件夹。
从:https://wiki2.dovecot.org/MailboxFormat/Maildir
目录结构
默认情况下,Dovecot 使用 Maildir++ 目录布局来组织邮箱目录。这意味着所有文件夹都直接位于 ~/Maildir 目录中:
- ~/Maildir/new、~/Maildir/cur 和 ~/Maildir/tmp 目录包含 INBOX 的消息。tmp 目录用于传递,新消息到达 new 目录,客户端将已读消息移动到 cur 目录。
~/Maildir/.folder/ 是邮箱文件夹
~/Maildir/.folder.subfolder/ 是文件夹的子文件夹(即“folder/subfolder”)
您还可以选择使用“fs”布局,方法是将 :LAYOUT=fs 附加到 mail_location。这使得文件夹结构如下所示:
~/Maildir/new、~/Maildir/cur 和 ~/Maildir/tmp 目录包含 INBOX 的消息,就像 Maildir++ 一样。
~/Maildir/folder/ 是邮箱文件夹
~/Maildir/folder/subfolder/ 是文件夹的子文件夹