Когда я собирался отказаться от сервера, я подумал, что мне нужно очистить свой Maildir
каталог, на всякий случай. Он может содержать некоторые электронные письма с паролем и тому подобное, поэтому я не хочу, чтобы их могли читать другие. Я использовал следующую командную строку:
find Maildir/ -type f -exec shred -u {} \;
К моему удивлению, эта командная строка не вернулась даже через несколько минут. Итак, я выполнил другую команду, чтобы узнать, сколько файлов у меня было под Maildir
:
find Maildir/ -type f | wc
14736 17737 1394113
И да. Это 14 736 файлов.
Что происходит с постфиксом?
Я использую thunderbird в качестве клиента, но это не должно влиять на работу сервера. Так зачем создавать и хранить все эти файлы?
В качестве примера у меня есть папка с именем «Блоги» с подпапкой «Воины» в Thunderbird. Когда я смотрю на 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
Прежде всего, Postfix не имеет к этому никакого отношения, поскольку это агент по транспортировке почты, и сообщения уже доставлены Maildir
извлекаются и обрабатываются почтовый пользовательский агент (например, Thunderbird) скорее всего (и надеюсь) через IMAP сервер (например, Dovecot).
Удаление сообщения из учетной записи IMAP устанавливает только флаг который помечает его для удаления и скрывает от просмотра. Файл не удаляется сразу из Maildir
, но теперь у него есть флаг 2.T
в его имени файла:
Информация начиная с
2,
: Каждый символ после запятой является независимым флагом.
- Флаг
P
(прошло): пользователь повторно отправил / перенаправил / переправил это сообщение кому-то другому.- Флаг
R
(ответил): пользователь ответил на это сообщение.- Флаг
S
(видел): пользователь просмотрел это сообщение, хотя, возможно, он не прочитал его полностью.- Флаг
T
(разбитый): пользователь переместил это сообщение в корзину; корзина будет очищена последующим действием пользователя.- Флаг
D
(черновой вариант): пользователь считает это сообщение черновиком; переключается по усмотрению пользователя. Флаг «F» (помечен): пользовательский флаг; переключается по усмотрению пользователя.
Оба ваших файла примеров имеют флаги :2,ST
в их имени, что означает, что они были видел и разбитый.
Это может вас сбить с толку, но «удаленное» сообщение фактически копируется в папку «Корзина». На техническом уровне у вас будет две копии файла на сервере, тогда как графический интерфейс говорит об обратном. Это более полезно в mbox
формат поскольку для сохранения только метаданных требуется меньше операций ввода-вывода на диск, чем для немедленного удаления одного сообщения в середине возможно огромного файла, содержащего весь почтовый ящик.
Обычно вам следует чистка сообщения из папки с вашим IMAP-клиентом, но в данной ситуации это не имеет значения, когда все они должны быть удалены (или перезаписаны shred
) тем не мение.
Thunderbird называет эту чистку уплотнение, но это не имеет отношения к сжатию.
Щелкните правой кнопкой мыши одну папку и выберите Компактный чтобы очистить его.
Вы можете сжать сразу все папки из файл > Компактные папки.
Вы можете автоматизировать очистку от Параметры > Продвинутый > Сеть и дисковое пространство > [x] Сжать все папки при сохранении [20] Всего МБ.
Теперь, когда ты знаешь как Maildir
отметив работу, вы могли бы легко чистка автоматически и на стороне сервера. Просто найдите и удалите все сообщения, имеющие 2,ST
, возможно, только когда старше n
дней.