当我要放下服务器时,我想,我应该清理我的Maildir目录,以防万一。 它可能包含一些带有密码的邮件,所以我不希望这些邮件被别人读取。 我使用了下面的命令行:
find Maildir/ -type f -exec shred -u {} \;
令我吃惊的是,这个命令行几分钟后也没有返回。 所以我跑了另外一个命令,看看Maildir下有多less个文件:
find Maildir/ -type f | wc 14736 17737 1394113
是的。 这是14,736个文件。
什么是使用后缀?
我使用thunderbird作为客户端,但不应该影响服务器的工作方式。 那么为什么所有这些文件都要创build并保存在那里呢?
举个例子,我有一个名为“Blogs”的文件夹,在Thunderbird中有一个名为“Warriors”的子文件夹。 当我看着雷鸟时,那个文件夹肯定是空的。 看着我的Maildir文件夹,我看到两个文件。 我有真正的印象,后缀不会删除我在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
首先,Postfix和邮件传输代理没有任何关系,已经传递给Maildir的邮件被邮件用户代理 (如Thunderbird)通过IMAP服务器 (例如Dovecot)最有可能(也希望)检索和处理, 。
在IMAP帐户上删除邮件只会设置一个标记 ,将其标记为删除并将其从视图中隐藏。 该文件不会立即从Maildir删除,但它的文件名中现在有2.T标志:
以
2,开始的信息2,:逗号后面的每个字符都是独立标志。
- 标志
P( 通过 ):用户将该消息重新发送/转发/弹回给其他人。- 标志
R(已回复 ):用户已回复此消息。- 标志
S( 见过 ):用户已经看过这个消息,虽然也许他没有读过它。- 标记
T(已丢弃 ):用户已将此消息移至垃圾箱; 垃圾将被稍后的用户操作清空。- 标志
D( 草稿 ):用户认为该消息是草稿; 根据用户的判断进行切换。 标志“F”(标志):用户定义的标志; 根据用户的判断进行切换。
这两个示例文件都有标志:2,ST中的名字表示它们已被看到并被删除 。
您可能会发现它相当混乱,但是“已删除”消息实际上被复制到“已删除邮件”文件夹中。 在技术层面上,您最终会在服务器上拥有两个文件副本,而GUI却是相反的。 这在mbox格式中更为有用,因为它只需要较less的磁盘I / O来保存元数据,而不是立即删除包含整个邮箱的可能巨大文件中间的一条消息。
通常情况下,您应该使用IMAP客户端清除文件夹中的邮件,但是在这种情况下,无论如何它们全部被删除(或者被shred覆盖)都没有什么不同。
Thunderbird把这个清除称为压缩 ,但它与压缩无关。
右键单击一个文件夹,然后selectCompact以清除它。
您可以从文件 > 压缩文件夹中一次压缩所有文件夹 。
您可以在选项 > 高级 > networking和磁盘空间 > [x] 压缩所有文件夹时自动进行清除,总共 可节省 20 MB以上 。
现在您已经知道Maildir标记是如何工作的,您也可以在服务器端自动清除 。 只要find并删除所有2,ST消息,可能只有在n天以上。