Я в настоящее время пытаюсь выяснить, как я могу удалить старые электронные письма в одной папке установки Maildir на сервере Debian. В основном то, что я хочу сделать, должно выполнять задание крона каждый день или так, чтобы проверки, определенная папка в Maildir для старых электронных писем и удаляет их, если они старше, чем сумма набора дней.
Существует ли простой способ отфильтровать электронные письма от Maildir по дате, или я должен читать в каждом электронном письме как текст, искать метку времени, преобразовать его, вычесть упомянутую сумму дней и затем сравнить его с текущей датой?
Я не хочу изобретать колесо, если бы уже существуют лучшие колеса там, таким образом, я радовался бы, мог ли кто-то выручить меня в выполнении этого.
Спасибо!
Примечание: Я использую Debian 7.8 с Постфиксом 2.9.6 и Голубятней 2.1.7
Поскольку у вас есть 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