Вопрос или проблема
Используя Dovecot 2.3.15 и Maildir
doveadm help
показывает мне:
expunge [-u <user>|-A] [-S <socket_path>] [-m] <поисковый запрос> search [-u <user>|-A] [-S <socket_path>] <поисковый запрос>
Это подразумевает, что expunge будет работать на “всех” пользователях (-A
), (я читал другие посты и комментарии в других местах, что expunge не будет работать для всех пользователей).
Итак;
Перед удалением я хочу протестировать результаты с помощью Поиска;
Я провел ряд простых тестов ПОИСКА, чтобы перечислить все электронные письма с определенной темой из почтовых ящиков сервера (десятки почтовых ящиков)
[root@basic ~]# doveadm search -A Subject 'Сжигая жир быстро! Без диеты и упражнений'
[root@basic ~]# doveadm search -A HEADER Subject 'Сжигая жир быстро! Без диеты и упражнений'
[root@basic ~]# doveadm search HEADER Subject 'Сжигая жир быстро! Без диеты и упражнений' -A
[root@basic ~]# doveadm search Subject 'Сжигая жир быстро! Без диеты и упражнения' -A
но все эти команды возвращают пустые результаты, без ошибок, просто ничего, пусто.
(Сторонние списки показывают, что на сервере есть 67 электронных писем с этой темой)
Я прочитал https://doc.dovecot.org/main/core/man/doveadm-search-query.7.html, но не могу понять, что я делаю не так. Я ожидаю получить результаты поиска в командной строке.
Более того, я не получаю никаких результатов командной строки (в качестве root) от поисков, указывая либо -A
, либо -u
, таких как:
[root@basic ~]# doveadm search -u '[email protected]' FROM '[email protected]'
Но это все равно не возвращает результатов. Что я упускаю, чтобы сделать Поиск (и, соответственно, expunge по теме) работающим из командной строки?
Спасибо
ИЗМЕНЕНИЕ:
[root@basic ~]# doveadm mailbox list -u ‘[email protected]‘
это ДЕЙСТВИТЕЛЬНО правильно перечисляет почтовые ящики в моей электронной почте. Но поиск не возвращает результатов.
Ответ или решение
Использование Dovecot и doveadm для поиска писем
На данный момент вы используете Dovecot версии 2.3.15 с Maildir, и у вас возникают проблемы с использованием команды doveadm
для поиска писем в почтовых ящиках всех пользователей. Давайте разберем вашу ситуацию и предложим пути её решения.
Проблема с командой поиска
Вы, кажется, выполняете правильные команды с использованием правильных параметров, однако результаты поиска не возвращаются. Это может происходить по нескольким причинам:
-
Поиск по заголовкам и предмету:
- Обратите внимание, что в Dovecot для поиска по заголовкам следует использовать точный синтаксис. В вашем примере вы используете
Subject
, это может не соответствовать заголовку. Попробуйте использоватьsubject
с маленькой буквы. Также стоит попытаться использовать команду более явно, например:doveadm search -A HEADER subject "Melt fat fast! Without diet or exercise"
- Обратите внимание, что в Dovecot для поиска по заголовкам следует использовать точный синтаксис. В вашем примере вы используете
-
Проблемы с индексированием:
- Dovecot использует индексирование для выполнения быстрого поиска. Если индексы не были обновлены или повреждены, это может привести к отсутствию результатов. Попробуйте выполнить команду для пересоздания индексов:
doveadm index -A
- Dovecot использует индексирование для выполнения быстрого поиска. Если индексы не были обновлены или повреждены, это может привести к отсутствию результатов. Попробуйте выполнить команду для пересоздания индексов:
-
Правильные права доступа:
- Поскольку вы запускаете команды от имени пользователя
root
, убедитесь, что Dovecot настроен на использование прав доступа так, чтобыroot
мог видеть почтовые ящики всех пользователей. Убедитесь, что в настройках конфигурации Dovecot (обычно находится в/etc/dovecot/dovecot.conf
) правильно настроены параметры доступа.
- Поскольку вы запускаете команды от имени пользователя
Примеры команд для проверки
Попробуйте следующие команды для проверки:
-
Сначала выполните индексирование:
doveadm index -A
-
Затем выполните поиск по теме:
doveadm search -A HEADER subject "Melt fat fast! Without diet or exercise"
-
Также проверьте, есть ли какие-то системные сообщения об ошибках в журналах Dovecot:
tail -f /var/log/mail.log
Завершение поиска и экспунгирование
Как только вы сможете успешно выполнить поиск и убедитесь, что результаты появляются, вы можете использовать команду expunge
для удаления найденных писем. Например:
doveadm expunge -A subject "Melt fat fast! Without diet or exercise"
Заключение
Использование Dovecot для управления почтой с помощью командной строки может быть мощным инструментом, но требует правильной настройки и понимания команды. Убедитесь, что команда doveadm
выполняется с корректными параметрами, индексы обновлены, а права доступа соответствуют вашим целям. Если у вас возникнут дополнительные трудности, рекомендуется обратиться к документации Dovecot или к сообществу поддержки для получения более специализированной помощи.