Здравствуйте, я столкнулся с проблемой в Exim4... для моих задач мне необходимо выполнить функцию perl и сохранить её результат в переменную конфига .. а затем подставить значение этой переменной в директивы конфига Exim4... как я пробовал сделатьв конфиге exim4 я прописал
VAR = ${perl{func}}
а затем подставил VAR в нужных мне местах .. но как оказалось exim4 в тех местах куда я подставил VAR , каждый раз выполнял ${perl{func}} .
Возможно ли всетаки реально сохранить результат (в моем случаи строка) выполнения функции в переменную конфига exim4
документацию я читал, но не нашёл там решения как это можно реализовать
как я понимаю проблема в том что VAR является макросом а не переменной вот exim4 и каждый раз выполняет его ... но все же .. Возможно как то сохранить и подставить значение в конфиг exim4 ?
Как вариантwarn set acl_m_my=${perl{func}}
VAR == $acl_m_my
>[оверквотинг удален]
> а затем подставить значение этой переменной в директивы конфига Exim4... как
> я пробовал сделать
> в конфиге exim4 я прописал
> VAR = ${perl{func}}
> а затем подставил VAR в нужных мне местах .. но как
> оказалось exim4 в тех местах куда я подставил VAR , каждый
> раз выполнял ${perl{func}} .
> Возможно ли всетаки реально сохранить результат (в моем случаи строка) выполнения функции
> в переменную конфига exim4
> документацию я читал, но не нашёл там решения как это можно реализовать
не получилосьобъявил VAR= в начале конфига
затем
acl_check_rcpt:
warn set acl_m_my=${perl{randominterface}}
accept hosts = :
denyпосле но до директивы транспорта сделал VAR == $acl_m_my
а в транспорте подставляет пустое значение макроса
может быть exim чтобы из acl уровня перейти к транспорту запускает другой процесс exim ?
вот и не получается у меня перебросить значениепробовал записать переменную из перла в системное окружение( ENV переменную) а затем второй функцией читать значение .. ничего не вышло ... у меня он так и не записал туда ничего ... ((( очень печально .. так как пока вижу только самый плохой вариант с записью в файл и последующим чтением его ... что очень отразиться на производительности
> Как вариант
> warn set acl_m_my=${perl{func}}
> VAR == $acl_m_my
вместо acl_m_my=${perl{randominterface}}
acl_с_my=${perl{randominterface}}acl_m действует в пределах одного aсl data rcpt ...
acl_с действует глобально пока живо письмо
>[оверквотинг удален]
> вот и не получается у меня перебросить значение
> пробовал записать переменную из перла в системное окружение( ENV переменную) а затем
> второй функцией читать значение .. ничего не вышло ... у меня
> он так и не записал туда ничего ... ((( очень печально
> .. так как пока вижу только самый плохой вариант с записью
> в файл и последующим чтением его ... что очень отразиться на
> производительности
>> Как вариант
>> warn set acl_m_my=${perl{func}}
>> VAR == $acl_m_my
И вообще зачем юзать макросы , это специфическая вещь , я думаю без нее
спокойно можно обойтись
>[оверквотинг удален]
>> вот и не получается у меня перебросить значение
>> пробовал записать переменную из перла в системное окружение( ENV переменную) а затем
>> второй функцией читать значение .. ничего не вышло ... у меня
>> он так и не записал туда ничего ... ((( очень печально
>> .. так как пока вижу только самый плохой вариант с записью
>> в файл и последующим чтением его ... что очень отразиться на
>> производительности
>>> Как вариант
>>> warn set acl_m_my=${perl{func}}
>>> VAR == $acl_m_my
счас попробовалв acl
acl_check_rcpt:
warn set acl_c_my=${perl{randominterface}}
accept hosts = :
deny
в транспорте
interface = $acl_c_myпишет пустую строку interface = ${perl{randominterface}}
все подставляет
сложность в том что мне нужно одинаковое значение подставить
и в interface = $acl_c_my
и в headers_add = X-Originating-IP: [$acl_c_my]так не работает
елси делаю сразу в транспорте>[оверквотинг удален]
>>> вот и не получается у меня перебросить значение
>>> пробовал записать переменную из перла в системное окружение( ENV переменную) а затем
>>> второй функцией читать значение .. ничего не вышло ... у меня
>>> он так и не записал туда ничего ... ((( очень печально
>>> .. так как пока вижу только самый плохой вариант с записью
>>> в файл и последующим чтением его ... что очень отразиться на
>>> производительности
>>>> Как вариант
>>>> warn set acl_m_my=${perl{func}}
>>>> VAR == $acl_m_my
Короче, постановку задачи в студию , только коротко
>[оверквотинг удален]
>>>> вот и не получается у меня перебросить значение
>>>> пробовал записать переменную из перла в системное окружение( ENV переменную) а затем
>>>> второй функцией читать значение .. ничего не вышло ... у меня
>>>> он так и не записал туда ничего ... ((( очень печально
>>>> .. так как пока вижу только самый плохой вариант с записью
>>>> в файл и последующим чтением его ... что очень отразиться на
>>>> производительности
>>>>> Как вариант
>>>>> warn set acl_m_my=${perl{func}}
>>>>> VAR == $acl_m_my
есть список ip выбрать из него рендомно любой ip (это счас я делаю в perl ) и подставить в interface и дополнительный хедер .... до тех пор пока я подставлял только в интерфейс все гуд было .. когда попробовал подставить и в хедер получилось что в интерфейсе один ip а в хедере другой ... вот и думаю как это решить ...>[оверквотинг удален]
>>>>> вот и не получается у меня перебросить значение
>>>>> пробовал записать переменную из перла в системное окружение( ENV переменную) а затем
>>>>> второй функцией читать значение .. ничего не вышло ... у меня
>>>>> он так и не записал туда ничего ... ((( очень печально
>>>>> .. так как пока вижу только самый плохой вариант с записью
>>>>> в файл и последующим чтением его ... что очень отразиться на
>>>>> производительности
>>>>>> Как вариант
>>>>>> warn set acl_m_my=${perl{func}}
>>>>>> VAR == $acl_m_my
все проблема решена , помогла переменная $sending_ip_address в транспортея с начала выбрал рендомно ip и назначил его на интерфейс а затем добавил $sending_ip_address в хедеры
interface = ${perl{randominterface}}
helo_data = ${lookup dnsdb{ptr=$sending_ip_address}{$value}{$primary_hostname}}
headers_add = X-Originating-IP: [$sending_ip_address]
> есть список ip выбрать из него рендомно любой ip (это счас я
> делаю в perl ) и подставить в interface и дополнительный хедер
> .... до тех пор пока я подставлял только в интерфейс
> все гуд было .. когда попробовал подставить и в хедер получилось
> что в интерфейсе один ip а в хедере другой ... вот
> и думаю как это решить ...