несколько результатов в запросе к бд

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
doker
сержант
Сообщения: 207
Зарегистрирован: 2008-11-18 16:20:26

несколько результатов в запросе к бд

Непрочитанное сообщение doker » 2016-11-20 14:58:13

Здрасте!
хочу запилить white лист с хранением в бд (конкретному юзверю можно слать почту только на указанные адреса).
подскажите пжл, вот у меня запрос вида

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

!recipients  = ${lookup pgsql{select rcp_mail from white_list where id_acc = (select id from users where account ='$sender_address_local_part@$sender_address_domain')}{$value}fail}
список рецепиентов может быть с несколькими значениями. в бд возврат запроса возвращает тоже несколько значений и они объединяются в одну строку с разделителем - перевод каретки (механизм exim`а). и соответственно такое условие не отрабатывает. использовать в бд запись вида [адрес1:адрес2:адрес3] противоречит реляционной модели и вообще не кошерная (хотя и работает) . есть ли возможность переформатировать выходную строку от lookup -заменить перевод каретки на : , или чтонить другое сотворить ?
заранее благодарен.

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

несколько результатов в запросе к бд

Непрочитанное сообщение xM » 2016-11-20 17:19:21

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

!recipients = ${sg{${lookup pgsql{select rcp_mail from white_list where id_acc = (select id from users where account ='$sender_address_local_part@$sender_address_domain')}}}{\n}{:}}
IT voodoo blog https://kostikov.co

doker
сержант
Сообщения: 207
Зарегистрирован: 2008-11-18 16:20:26

несколько результатов в запросе к бд

Непрочитанное сообщение doker » 2016-11-21 9:32:03

вот куча благодарностей тебе, добрый человек ))) жму твою могучую руку!!

Отправлено спустя 18 минут 5 секунд:
открыл для себя раскрываемые строки 1!!

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

несколько результатов в запросе к бд

Непрочитанное сообщение xM » 2016-11-21 20:17:35

Кстати, для списков работает ещё вот такая конструкция

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

domainlist someshit = <\n ${lookup mysql{blah...blah...blah}}
Должна и у вас сработать тоже, я думаю.

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

!recipients = <\n ${lookup pgsql{select rcp_mail from white_list where id_acc = (select id from users where account ='$sender_address_local_part@$sender_address_domain')}{$value}fail}
doker писал(а): вот куча благодарностей тебе
Enjoy!
IT voodoo blog https://kostikov.co