Вопрос или проблема
Я могу искать старые письма для одного пользователя:
doveadm search -u '[email protected]' mailbox Trash savedbefore 180d
возвращает результаты
f35jv2jh35vj2v5jh2v53…. 31
f35jv2jh35vj2v5jh2v53…. 42
…
То же самое поиск для всех пользователей ничего не возвращает (нет вывода):
doveadm search -A mailbox Trash savedbefore 180d
Я не получаю вывода, никаких ошибок…
Мне пришлось настроить две переменные, чтобы опция -A
работала:
-A: При использовании модуля LDAP userdb убедитесь, что настройки iterate_attrs и iterate_filter в
/etc/dovecot/dovecot-ldap.conf.ext
соответствуют вашей LDAP-схеме. В противном случае doveadm(1) не сможет перебрать всех пользователей.
Пример конфигурации в файле dovecot-ldap.conf.ext
:
# Для использования doveadm -A:
iterate_attrs = =user=%{ldap:uid}
iterate_filter = (objectClass=posixAccount)
Источник: Dovecot Wiki: Userdb LDAP
Ответ или решение
Когда вы используете команду doveadm search
с флагом -A
, вы пытаетесь выполнить поиск по почтовым ящикам всех пользователей, зарегистрированных в вашей системе Dovecot. Однако, как вы уже заметили, без правильной настройки параметров, связанных с LDAP, вы можете не получить никаких результатов.
Проблема
Команда, которую вы использовали:
doveadm search -A mailbox Trash savedbefore 180d
не возвращает никаких результатов, поскольку Dovecot не может корректно итеративно обойти всех пользователей. Это часто связано с неправильной конфигурацией параметров iterate_attrs
и iterate_filter
в файле настроек LDAP.
Решение
Чтобы решить данную проблему, необходимо убедиться, что вы правильно настроили параметры итерации в файле конфигурации /etc/dovecot/dovecot-ldap.conf.ext
. Вам нужно установить следующие значения:
iterate_attrs = =user=%{ldap:uid}
iterate_filter = (objectClass=posixAccount)
Эти параметры отвечают за правильное извлечение всех пользователей из вашей LDAP базы данных. iterate_attrs
указывает, как Dovecot должен извлекать атрибуты пользователя, а iterate_filter
определяет, какие записи следует считать пользователями в LDAP.
Контрольные шаги
-
Проверьте правильность настроек: Убедитесь, что
dovecot-ldap.conf.ext
настроен в соответствии с вашей LDAP-схемой. -
Проверьте доступность LDAP: Убедитесь, что Dovecot может подключиться к вашему серверу LDAP и что ваши учетные данные корректны. Протестируйте подключение к LDAP с помощью командной строки, если это необходимо.
-
Перезагрузите Dovecot: После изменений в конфигурации перезагрузите службу Dovecot, чтобы применить настройки:
sudo systemctl restart dovecot
-
Проверьте логи Dovecot: Если после всех изменений проблема остается, проверьте логи Dovecot (обычно находятся в
/var/log/mail.log
или/var/log/dovecot.log
). Это может дать больше информации о происходящем.
Заключение
После выполнения этих шагов, выполните команду doveadm search -A mailbox Trash savedbefore 180d
еще раз. Этот процесс должен вернуть результаты, если все настройки выполнены корректно, и у вас есть доступ к почтовым ящикам всех пользователей.
Если проблема все еще не решена, стоит проверить дополнительные параметры конфигурации Dovecot или обратиться за помощью на специализированные форумы и обсуждения, такие как Dovecot Wiki или сообщество пользователей Dovecot, чтобы получить дополнительную поддержку.