当我准备删除服务器时,我想,我应该清理我的Maildir
目录,以防万一。它可能包含一些带有密码等的电子邮件,所以我不希望其他人可以读取它们。我使用了以下命令行:
find Maildir/ -type f -exec shred -u {} \;
令我惊讶的是,几分钟后该命令行仍未返回。因此我运行了另一个命令来查看下有多少个文件Maildir
:
find Maildir/ -type f | wc
14736 17737 1394113
是的。一共有 14,736 个文件。
Postfix 出了什么问题?
我使用 thunderbird 作为客户端,但这不会影响服务器的工作方式。那么为什么要创建并保存所有这些文件呢?
举个例子,我在 Thunderbird 中有一个名为“Blogs”的文件夹,其中有一个名为“Warriors”的子文件夹。当我查看 Thunderbird 时,该文件夹肯定是空的。当我查看我的Maildir
文件夹时,我看到两个文件。我的真实印象是 Postfix 不会删除我在 Thunderbird 中删除的电子邮件。可能是这样吗?下面的两个文件是前段时间删除的,但近 3 个月后它们仍然在我的邮件服务器上......
Maildir/.Blogs.Warriors/cur:
total 16
drwx------ 2 alexis alexis 4096 Feb 8 00:10 .
drwx------ 6 alexis alexis 4096 Feb 8 00:03 ..
-rw-r--r-- 1 alexis alexis 2727 Feb 5 00:02 1486252970.M453258P14727V0000000000000800I00000000001E4FDE_9.m2osw.com,S=2727:2,ST
-rw-r--r-- 1 alexis alexis 2646 Feb 8 00:02 1486512185.M350097P2621V0000000000000800I00000000001E4F7B_84.m2osw.com,S=2646:2,ST
答案1
首先,Postfix 与此无关,因为它是一个邮件传输代理,并且已经传递给的消息Maildir
由邮件用户代理(例如 Thunderbird)最有可能(并且希望)通过IMAP 服务器(例如 Dovecot)。
删除 IMAP 帐户上的邮件只会设置旗帜将其标记为删除并隐藏起来。该文件不会立即从Maildir
,但现在2.T
文件名中有一个标志:
信息以...开头
2,
:逗号后的每个字符都是一个独立的标志。
- 旗帜
P
(已通过):该用户已将该消息重新发送/转发/退回给其他人。- 旗帜
R
(回复):该用户已回复此消息。- 旗帜
S
(看到):用户已经查看了此消息,但可能并未全部读完。- 旗帜
T
(被丢弃):用户已将此消息移至垃圾箱;垃圾箱将由用户稍后的操作清空。- 旗帜
D
(草稿):用户认为此消息为草稿;由用户自行决定是否启用。标志“F”(已标记):用户定义的标志;由用户自行决定是否启用。
您的两个示例文件:2,ST
的名称中都有标志,表示它们已被看到和被丢弃。
您可能会觉得有些困惑,但“已删除”消息实际上被复制到了垃圾文件夹。从技术层面上讲,您最终会在服务器上拥有该文件的两个副本,而 GUI 则相反。这在以下情况下更有用:mbox
格式因为只保存元数据所需的磁盘 I/O 比立即删除包含整个邮箱的可能巨大的文件中间的一条消息要少。
通常你应该清除使用 IMAP 客户端从文件夹中删除所有邮件,但在这种情况下,这并没有什么区别,因为shred
无论如何,这些邮件都会被删除(或被覆盖)。
雷鸟称这种净化为压缩,但与压缩无关。
右键单击单个文件夹并选择袖珍的以便清除它。
您可以一次压缩所有文件夹文件>紧凑文件夹。
您可以自动清除选项>先进的>网络和磁盘空间> [x]压缩所有文件夹以节省[20]总计 MB。
现在您已经了解了Maildir
举报的工作原理,您可以轻松地清除服务器端也会自动删除。只需查找并删除所有包含 的消息2,ST
即可,可能仅当该消息的存储时间超过n
天时才删除。