Группа распространения 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
Как из этого списка получать запись каждого пользователя
Такую: CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net
чтобы определять адреса эл.почты
> Группа распространения 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
> Как из этого списка получать запись каждого пользователя
> Такую: CN=Natalia N. Ivanova,,CN=Users,,DC=domain,,DC=net
> чтобы определять адреса эл.почтызапрос по LDAP выбрать поле "mail" у участников группы "ГРУППА"...
что-то типа memberof=tra-ta-ta
Как выбрать поле 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 в режиме оладки выдает такое:
. 814 \_____result: 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
. 814 |__expanding: user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///${quote_ldapdn:$item}?mail?base?
. 814 \_____result: user=cn=vmail,cn=Users,dc=domain,dc=net pass=123456 ldap:///CN%3DNatalia%20N.%20Ivanova%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet%2CCN%3DAlexey%20I.%20Petrov%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet%2CCN%3DIvan%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet?mail?base?
.............
814 perform_ldap_search: ldap URL = "ldap:///CN%3DNatalia%20N.%20Ivanova%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet%2CCN%3DAlexey%20I.%20Petrov%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet%2CCN%3DIvan%2C%2CCN%3DUsers%2C%2CDC%3Ddomain%2C%2CDC%3Dnet?mail?base?" server=192.168.1.6 port=0 sizelimit=0 timelimit=0 tcplimit=0
814 after ldap_url_parse: host=192.168.1.6 port=0
814 re-using cached connection to LDAP server 192.168.1.6:389
814 Start search
814 search ended by ldap_result yielding 101
814 ldap_parse_result: 0
814 ldap_parse_result yielded 34: Invalid DN syntax
814 lookup failure forced
814 LDAP search failed - error 34: Invalid DN syntax/0000208F: NameErr: DSID-03100225, problem 2006 (BAD_NAME), data 8350, best match of:
814 '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'
814
814 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?"И ничего не находится
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?"И ничего не находится
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
Сам и решил. Нужно было привести полученный список членов группы распространения к виду
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