Назад | Перейти на главную страницу

doveadm: Удалять сообщения старше даты

У меня есть ситуация, когда некоторые пользователи хранят в своих почтовых ящиках очень старые сообщения (+5 лет), которые являются пустой тратой места и по соображениям безопасности также должны быть удалены.

Я обнаружил, что могу использовать doveadm для этого, однако, выполняется что-то вроде:

doveadm expunge -u testuser@sv.dev mailbox INBOX savedbefore 1-Jan-2011

Никакого эффекта не имеет. Насколько я понимаю, почтовые клиенты помечают письмо для удаления до expunge запускается на сервере для их фактического удаления.

Как я могу пометить их для удаления с помощью doveadm а затем запустите doveadm команда перед или напрямую и полностью удалить их?

По-видимому, мое решение было почти правильным, я могу делать то, что мне нужно:

doveadm expunge -u testuser@sv.dev mailbox INBOX SENTBEFORE 1-Jan-2011
doveadm expunge -u testuser@sv.dev mailbox INBOX.Sent SENTBEFORE 1-Jan-2011
doveadm expunge -u testuser@sv.dev mailbox INBOX.Trash SENTBEFORE 1-Jan-2011
doveadm purge -u testuser@sv.dev

Заметка: Вы можете заменить -u testuser@sv.dev с участием -A чтобы настроить таргетинг на всех пользователей системы.


Дополнительно для систем электронной почты на базе WHM / cPanel:

Если вы используете машину WHM / cPanel, вам необходимо вручную обновить размер ваших почтовых каталогов:

/scripts/generate_maildirsize --confirm --verbose account_username

Или для всех учетных записей:

/scripts/generate_maildirsize --allaccounts --confirm --verbose