Exim + LDAP, Взять первое значение

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
panda_jj
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-03-26 10:47:41

Exim + LDAP, Взять первое значение

Непрочитанное сообщение panda_jj » 2009-05-29 16:29:19

Есть запись пользователя uid=user,dc=my-company,dc=net
У него есть два поля mail
mail: user@my-company.net
mail: user@company.net
Надо взять первое значение "user@my-company.net"
При таком запросе

Код: Выделить всё

${lookup ldap{size="1" ldap://LDAP_SRV/uid=user,dc=my-company,dc=net?mail?sub?}}
возвращаются оба значения user@my-company.net, user@company.net
Последний раз редактировалось Alex Keda 2009-05-31 22:31:16, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim + LDAP, Взять первое значение

Непрочитанное сообщение Alex Keda » 2009-05-31 22:32:09

кондишен целиком покажите.
=======
и прочтите правила оформления сообщений, вверху любой страницы форума.
Убей их всех! Бог потом рассортирует...

panda_jj
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-03-26 10:47:41

Re: Exim + LDAP, Взять первое значение

Непрочитанное сообщение panda_jj » 2009-06-01 9:53:41

Вобщем-то суть вопроса заключается в запросе с первого поста

Полный запрос выглядит так:

Код: Выделить всё

        data = ${sg {${map {${sg{${lookup \
                 ldap{ldap://LDAP_SRV\
                  /ou=MailGroup,LDAP_DOMAIN\
                  ?member\
                  ?sub\
                  ?(mail=${quote_ldap:$local_part@$domain})}}}{, }{:}}}\
                  { \
                  ${lookup ldap{size="1" ldap://LDAP_SRV/$item?mail?sub?}} \
                  }}}{:}{, }}
Использую для отправки сообщений на группу. И если у человека есть алиас, то сообщение приходит дважды, а это не годится =(

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35045
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Exim + LDAP, Взять первое значение

Непрочитанное сообщение Alex Keda » 2009-06-01 10:47:07

сделайте extract
по пробелу, с доставанием первого значения
Убей их всех! Бог потом рассортирует...

panda_jj
проходил мимо
Сообщения: 5
Зарегистрирован: 2009-03-26 10:47:41

Re: Exim + LDAP, Взять первое значение

Непрочитанное сообщение panda_jj » 2009-06-01 12:21:50

Спасибо! Заработало как надо =)
Только разделитель не пробел, а запятая. Потомучто массив атрибутов возвращается как список
"user@my-company.net, user@company.net, <value>"

Код: Выделить всё

        data =  ${sg {${map {${sg{${lookup \
                 ldap{ldap://LDAP_SRV\
                  /ou=MailGroup,LDAP_DOMAIN\
                  ?member\
                  ?sub\
                  ?(mail=${quote_ldap:$local_part@$domain})}}}{, }{:}}}\
                  { \
                  ${extract{1}{,}{${lookup ldap{size="1" ldap://LDAP_SRV/$item?mail?sub?}}}} \
                  }}}{:}{,}}