Есть почтовый сервер на postfix+dovecot с авторизацией через Active Directory. Всё работает, почта ходит, народ доволен. Но есть задача раз в месяц чистить спам на всех ящиках. Проблема в том, что doveadm с параметром -A не возвращает ни одного ящика:
root ~# doveadm search -A all
root ~#
root ~# doveadm search -u test all
de613e0e9785ea5175170000aa50d881 3218
de613e0e9785ea5175170000aa50d881 3219
...
Запрос через ldapsearch, как положено, вываливает кучу объектов. Т.е. лдап запрос и фильтр корректны.
ldapsearch -x -H ldap://dc.domain.net:389 -D 'ldap_postfix@domain.net' -w 'password' -b 'ou=domain,dc=domain,dc=net' -s sub '(&(objectCategory=person)(proxyAddresses=*))'
конфиг для userdb через ldap
root /etc/dovecot# cat dovecot-ldap_user.conf.ext
uris = ldap://dc.doamin.net
dn = ldap_postfix@doamin.net
dnpass = password
auth_bind = yes
auth_bind_userdn = %n@doamin.net
ldap_version = 3
base = ou=doamin,dc=doamin,dc=net
scope = subtree
user_attrs =
user_filter = (&(objectCategory=person)(sAMAccountName=%n))
pass_filter = (&(objectCategory=person)(sAMAccountName=%n))
iterate_attrs =
iterate_filter = (objectCategory=person)
Пробовал менять iterate_filter = (objectCategory=*) - никакого результата. В логах никаких ошибок.
Конечно можно написать скрипт который в цикле перебирает все ящики, но это же дикий костыль.