Привет всем!Проблема состоит в следующем:
Связка exim + dovecot + openldap + procmail + clamav + spamassassin
Проблема в следующем:
Все пользователи почтовые берутся с OpenLDAP.
EXIM тоже берет их от туда, все бы хорошо, но при сортировании почты по папочкам procmail'ом он
не работает.
Суть в следующем:
почта приходит на exim, там фильтруется, проверяется на вирусы и spamassassin помечает письма X-флагом.
по этому флагу уже идет разбор пасем по папкам procmail'ом.
Напр. если письмо пришло на alex@localhost, то оно помечается как спам, и кидаеться пользователю alex в патку "Спам".
Так и действительно работает, но только для системных пользователей. Те которые беруться с OpenLDAP они не проходят
procmail, так, как сам procmail не умеет работать с LDAP, ему нужны системные пользователи.
Системных пользователей я заводить не собираюсь.
Вопрос в следуещем: как мне разкидовать почту в зависимости от X-заголовков или как подружить procmail c LDAP :))
Другие предложения тоже выслушаю.
--- start cat configure ---
ldap_user:
driver = accept
condition = ${lookup ldap { user="cn=root,dc=firma,dc=com" pass=secret ldap://localhost/ou=Mail_Users,dc=firma,dc=com??sub?(uid=$local_part)}}
require_files = /usr/local/etc/procmailrc
transport = procmail_pipe
procmail_pipe:
driver = pipe
delivery_date_add = true
envelope_to_add = true
return_path_add = true
command = /usr/local/bin/procmail -f
user = ${local_part}
group = mail
--- end cat configure ---
Тут все просто. При отправке почты, exim смотрит в LDAP есть ли такой, если есть то он передает письмо на переработку procmail.
--- start cat procmailrc---
MAILDIR=$HOME/mail
LOGFILE=/var/log/procmail.log
LOGABSTRACT=no
VERBOSE=on
UMASK=007
:0:
* ^X-Spam-Flag: YES
$MAILDIR$HOME/.&BCEEPwQwBDw-/
--- end cat procmailrc ---
Это конфиг самого procmail'а
А это ошибка exim
Failed to find user "alex" from expanded string "${local_part}" for the procmail_pipe transport
1HJvPP-0001yI-RX == alex@localhost R=ldap_user T=procmail_pipe defer (-29): Failed to find user "alex" from expanded string "${local_part}" for the procmail_pipe transport
Можно просто завести пользователей в LDAP и поправить nsswitch.conf ldap.conf nss_ldap.conf, и они будут как бы системные.
Такое тоже не подходит.
Возможно кто-то знает как это можно сделать с помощью самого exim'а?
openldap-sasl-client-2.3.33
openldap-server-2.3.33
exim-4.66
procmail-3.22_6
FreeBSD 6.2-RELEASE