Удалите старые электронные письма из Maildir

Я в настоящее время пытаюсь выяснить, как я могу удалить старые электронные письма в одной папке установки Maildir на сервере Debian. В основном то, что я хочу сделать, должно выполнять задание крона каждый день или так, чтобы проверки, определенная папка в Maildir для старых электронных писем и удаляет их, если они старше, чем сумма набора дней.

Существует ли простой способ отфильтровать электронные письма от Maildir по дате, или я должен читать в каждом электронном письме как текст, искать метку времени, преобразовать его, вычесть упомянутую сумму дней и затем сравнить его с текущей датой?

Я не хочу изобретать колесо, если бы уже существуют лучшие колеса там, таким образом, я радовался бы, мог ли кто-то выручить меня в выполнении этого.

Спасибо!

Примечание: Я использую Debian 7.8 с Постфиксом 2.9.6 и Голубятней 2.1.7

3
задан 9 August 2015 в 15:12
1 ответ

Поскольку у вас есть dovecot, вы можете сделать это с помощью doveadm (1).

Например, удаление почты, сохраненной в папке Trash для пользователя до 30 дней:

doveadm expunge mailbox Trash savedbefore 30d -u <user>

Вы можете использовать -A флаг для всех пользователей, и если вы хотите сначала проверить совпадающие письма, используйте команды search / fetch - см. doveadm-search (1):

doveadm search mailbox Trash savedbefore 30d -u <user> |
   while read guid uid; do
     doveadm fetch -u <user> body mailbox-guid $guid uid $uid > msg.$uid
   done
7
ответ дан 3 December 2019 в 05:12

Теги

Похожие вопросы