Полезные команды Postfix, Dovecot, Maildir
Некоторые полезные команды в процессе настройки почтового сервера рассматриваемой в этой серии заметок почтовой системы. Часть примеров команд есть прямо в статьях (обычно в конце), но некоторые всплывали в процессе в разных ситуациях, и иногда оказывалось что есть затруднения с поиском решений. Для таких случаев я решил накапливать в этой статье самые полезные команды, которые вызывали затруднения и для которых приходилось искать решение. Заметка видимо будет постоянно дополняться.
ВАЖНО! Эта страница является частью списка заметок о настройке почтовой системы.
Родительская страница - обязательна к просмотру: Установка и настройка почтового сервера
Очистка почтовых папок из командной строки
Столкнулся с интересной проблемой - некоторые ящики некоторых пользователей (например системных) заполнились настолько, что попытки удалить почту через web-клиент приводили к его зависанию. В папках были сотни тысяч писем - не уследил.
Пришлось искать способ удалить из командной строки, но почему-то с этим возникли проблемы. Самая главная проблема - с пользователями. Выскакивали постоянные ошибки при попытках подобных команд (от имени root конечно): doveadm expunge -u postmaster mailbox Sent savedbefore 2w
В первых попавшихся примерах эта команда приводилась как способ частично очистить папку "Отправленные" пользователя postmaster - удалить все письма старше 2 недель. В этом варианте, и в других подобных, например в варианте doveadm expunge -A mailbox Sent savedbefore 2w
В общем рабочим оказался следующий вариант: doveadm expunge -u postmaster@site.tld mailbox Inbox before 1d
(тут очищается папка "Входящие" - Inbox, для "Отправленные" надо заменить на Sent).
В этом варианте вместо 2 недель (2w) - 1 день (1d). Вместо savedbefore работает очистка только с before. Что касается имени пользователя postmaster@site.tld (вместо @site.tld может быть другой домен), то он взят из MySQL базы данных Postfix пользователей почтовых ящиков из таблицы mail, из поля name.
ВАЖНО! Надо зайти в БД и посмотреть имя таблицы, имя поля и имя пользователя. Потому что оно может отличаться у разных серверов в зависимости от настроек! То что в моем случае имя было полным (вместе с доменом) именем почтового ящика было для меня неожиданностью.
Кроме того надо раскомментировать строку в конце (или добавить если ее нет): /etc/dovecot/dovecot-sql.conf.ext
...
iterate_query = SELECT username AS user FROM users
...
И заменить на нужные username (имя поля, в моем случае это name) и так же users (имя таблицы, в моем случае это mail):
...
iterate_query = SELECT name AS user FROM mail
...
ВАЖНО! Имя поля и таблицы надо посмотреть в БД Postfix (MySQL), так же как и правильное имя пользователя.
Перезагрузка на всякий случай: service dovecot restart
Оставьте комментарий
Вы можете войти под своим логином или зарегистрироваться на сайте.