Как очистить почтовые ящики Dovecot из командной строки.
При использовании Postfix и Dovecot, в какой-то момент столкнулся с проблемой, что некоторые почтовые ящики пользователей заполнились настолько, что попытки удалить почту через web-клиент приводили к его зависанию. В папках было огромное количество спам-писем.
Ниже приведу примеры как выполнять очистку почтовых ящиков пользователей.
Для полной очистки папки INBOX для ВСЕХ пользоватлей, команда:
doveadm expunge -A mailbox INBOX ALL
Для полной очистки папки INBOX конкретного пользователя, команда:
doveadm expunge -u example@domain.com mailbox INBOX ALL
[stextbox id=’info’]ИНФОРМАЦИЯ. Тут очищается папка «Входящие» — INBOX, для «Отправленные» надо заменить на SENT.[/stextbox]
Для очистки папки INBOX писем стерше 2х недель, выполним команду:
doveadm expunge -A mailbox INBOX savedbefore 2w
Для очистки папки INBOX писем стерше 1го дня, выполним команду:
doveadm expunge -A mailbox INBOX before 1d
Если при выполнении команд doveadm
ругается что не может найти пользователя(ей) или что-то подобное, то нужно проверить есть ли параметр iterate_query
в /etc/dovecot/dovecot-sql.conf.ext
. Без данного параметра могут быть проблемы с поиском пользователей и их ящиков.
Строка в файле /etc/dovecot/dovecot-sql.conf.ext
должна выглядить так (если ее нет, то нужно добавить ее):
SELECT email as user FROM virtual_users
где, email
, virtual_users
необходимо изменить на ваши значения. Это нужно смотреть в БД Postfix (MySQL).
Обсуждение
Нет комментариев.