Коллеги, доброго дня.Имеем:
%uname -sr
FreeBSD 9.3-RELEASE-p26
%pkg info | egrep -E "(postfix|rspamd|rmilter|clam)"
clamav-0.98.7 Command line virus scanner written entirely in C
postfix-2.11.6,1 Secure alternative to widely-used Sendmail
rmilter-1.6.1_1 Milter that performs spamd, clamav, and spf checks
rspamd-1.0.2 Fast spam filtering system
Пытаюсь настроить postfix с фильтрацией почты на спам и вирусы через rmilter и у меня возникла проблема с адресами пересылки.
На адрес tnoc@example.ru приходит письмо и дальше оно должно быть доставлено нескольким получателям, но этого не происходит.
main.cf
#[VIRUS_SPAM_CHECK]
smtpd_milters = unix:/var/run/rmilter/rmilter.sock
milter_protocol = 6
milter_mail_macros = i {mail_addr} {client_addr} {client_name} {auth_authen}
milter_default_action = accept
virtual_alias_maps = ldap:valiasexample
valiasexample_query_filter = (&(objectClass=qmailUser)(|(mail=%s)(mailAlternateAddress=%s)))
valiasexample_result_attribute = mail, mailForwardingAddress
Приходит письмо на адрес рассылки tnoc@example.ru
...
Oct 8 14:56:16 aid postfix/smtpd[53201]: >>> CHECKING RECIPIENT MAPS <<<
…
ищем адрес в LDAP-е
…
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: Using existing connection for LDAP source valiasexample
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: valiasexample: Searching with filter (&(objectClass=qmailUser)(|(mail=tnoc@example.ru)(mailAlternateAddress=tnoc@example.ru)))
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: Search found 1 match(es)
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: search returned 1 value(s) for requested result attribute mail
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: search returned 3 value(s) for requested result attribute mailForwardingAddress
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_get_values[1]: Leaving dict_ldap_get_values
Oct 8 14:56:16 aid postfix/smtpd[53201]: dict_ldap_lookup: Search returned tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
Oct 8 14:56:16 aid postfix/smtpd[53201]: maps_find: virtual_alias_maps: ldap:valiasexample(0,lock|fold_fix): tnoc@example.ru = tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
Oct 8 14:56:16 aid postfix/smtpd[53201]: mail_addr_find: tnoc@example.ru -> tnoc@example.ru,user1@example.ru,user2@example.ru,user3@example.ru
...
Нашли адрес и тут же получили адреса пересылки, тут проблем нет.
В конце концов письмо отдаётся LDA, но только на адрес tnoc@example.ru, а рассылки на остальные адреса не происходит. Вот в этом и проблема.
Oct 8 14:56:16 aid postfix/pipe[53341]: 97E1F1800B: to=<tnoc@example.ru>, relay=nolocal, delay=0.27, delays=0.26/0.01/0/0, dsn=2.0.0, status=sent (delivered via nolocal service)
Oct 8 14:56:16 aid postfix/qmgr[52904]: 97E1F1800B: removed
На другом сервере (настройки почти идентичные), где фильтрация настроена иначе postfix→clamsmtpd→spamd->postfix, лог следующий:
Oct 8 11:01:27 soap postfix/pipe[96049]: C8C3A3AD0D: to=<tnoc@example.ru>, relay=nolocal, delay=0.19, delays=0.16/0.02/0/0, dsn=2.0.0, status=sent (delivered via nolocal service)
Oct 8 11:01:28 soap postfix/pipe[12334]: C8C3A3AD0D: to=<user1@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.35, delays=0.16/0.02/0/0.17, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct 8 11:01:28 soap postfix/pipe[89204]: C8C3A3AD0D: to=<user2@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.35, delays=0.16/0.03/0/0.16, dsn=2.0.0, status=sent (delivered via dovecot service)
Oct 8 11:01:28 soap postfix/pipe[89206]: C8C3A3AD0D: to=<user3@example.ru>, orig_to=<tnoc@example.ru>, relay=dovecot, delay=0.36, delays=0.16/0.04/0/0.15, dsn=2.0.0, status=sent (delivered via dovecot service)
Иными словами, если я использую для фильтрации milter на postfix-е, то при передаче письма LDA postfix напрочь забывает про virtual_alias_maps .
Почему так происходит?
Заранее благодарен за Ваш ответ.