Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программное обеспечение Linux и FreeBSD (http://forum.oszone.net/forumdisplay.php?f=11)
-   -   [решено] Exim и группа распространения AD (http://forum.oszone.net/showthread.php?t=331897)

ka934 15-12-2017 11:20 2784453

Exim и группа распространения AD
 
Группа распространения AD имеет адрес эл.почты. Отправленное на этот адрес письмо получают все члены этой группы. Определил по адресу эл.почты, что это группа распространения AD. Получил список членов этой группы, который имеет вид:
result: CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net,CN=Ivan I.Petrov,,CN=Users,,DC=domain,,DC=net,CN=Dmitry V. Sidorov,,CN=Users,,DC=domain,,DC=net
Как выбрать поле mail кождого пользователя? На http://forum.lissyara.su нашел такое
data = ${sg{${map{<\n \
${sg\
{${lookup ldapm {user=LDAP_AD_BINDDN pass=LDAP_AD_PASS\
ldap:///LDAP_AD_BASE_DN?member?sub?(&(sAMAccountType=268435457)(mail=${quote_ldap:${local_part}@${domain}})) }}}
{\N, \N}{\n}
}} \
{${lookup ldap{user=LDAP_AD_BINDDN pass=LDAP_AD_PASS\
ldap:///${quote_ldapdn:$item}?mail?base?}}}
}}
{\N\n\N}{, } \
}

Результат, возвращаемый функцией ldapm - этот список. Exim в режиме оладки выдает такое:
855 /considering: ${lookup ldap{user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///$item?mail?base?}}}}}{\N\n\N}{, }}
. 855 /considering: user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///$item?mail?base?}}}}}{\N\n\N}{, }}
. 855 |__expanding: user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///$item?mail?base?
. 855 \_____result: user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net,CN=Alexey I. Petrov,,CN=Users,,DC=domain,,DC=net,CN=Ivan,,CN=Users,,DC=domain,,DC=net?mail?base?
855 search_open: ldap "NULL"
855 search_find: file="NULL"

855 perform_ldap_search: ldap URL = "ldap:///CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net,CN=Alexey I. Petrov,,CN=Users,,DC=domain,,DC=net,CN=Ivan,,CN=Users,,DC=domain,,DC=net?mail?base?" server=192.168.1.6 port=0 sizelimit=0 timelimit=0 tcplimit=0
855 after ldap_url_parse: host=192.168.1.6 port=0
855 re-using cached connection to LDAP server 192.168.1.6:389
855 Start search
855 search ended by ldap_result yielding 101
855 ldap_parse_result: 0
855 ldap_parse_result yielded 34: Invalid DN syntax
855 lookup failure forced
855 LDAP search failed - error 34: Invalid DN syntax/0000208F: NameErr: DSID-03100225, problem 2006 (BAD_NAME), data 8350, best match of:
855 'CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net,CN=Alexey I. Petrov,,CN=Users,,DC=domain,,DC=net,CN=Ivan,,CN=Users,,DC=domain,,DC=net'
855
855 lookup failed

Получается, что поиск атрибута mail ведется по этой строке
perform_ldap_search: ldap URL = "ldap:///CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net,CN=Alexey I. Petrov,,CN=Users,,DC=domain,,DC=net,CN=Ivan,,CN=Users,,DC=domain,,DC=net?mail?base?"

И ничего не находится

Сам и решил. Нужно было привести полученный список членов группы распространения к виду
CN=Natalia N. Ivanova,CN=Users,DC=domain,DC=net\nCN=Alexey I. Petrov,CN=Users,DC=domain,DC=net\nCN=Ivan,CN=Users,DC=domain,DC=net
Для этого применить еще функцию sg, и преобразованный список подавать на функцию map


Время: 18:48.

Время: 18:48.
© OSzone.net 2001-