Vitalij Dz wrote:
> Привет Виктор!
привет
> Не мог бы ты добавить мой ACL в сборку ?
>> Выглядит примерно так:
>> deny set acl_m0 = ${sg {${sg {${sg {$h_Received:}{\n([ \t])}{ } }} \
> {.*?\N\[(?!10\.|127\.|172\.16\.|192\.168\.|195\.149\.96\.)\
> ((\d+)\.(\d+)\.(\d+)\.(\d+))\]\N+} {\$1|} }} \
> {([0-9.|]*).*} {\$1} }
> log_message = $dnslist_value $dnslist_text
> message = Sender $dnslist_text
> dnslists = bl.spamcop.net/<|acl_m0 : \
> blackholes.five-ten-sg.com/<|acl_m0
>> Что это делает я думаю объяснять нет необходимости.
> По возможности привести в более приемлемый вид.
> Вставляю я это перед check_message_id.
есть два варианта:
1. быстрый: я просто дам возможность включать в m4/configure.m4 свои
инкруды в предопределенные места. тогда можно будет включить этот acl в
том же виже, в котором он приведен выше.
2. долгий: сделать аналог конструкции DNS_BL для адресов из Received.
хотя идеологически с точки зрения целостности конфигуратора более
правильным является второй вариант, я склоняюсь к первому, т. к. я
специально в свое время выносил достаточно много фрагментов конфига, в
которых производилась работа с контентом (фильтр по полям Subject,
Organization, Content-Type и т. д.). ибо с моей точки зрения логичнее
проводить данные проверки средствами контент сканера, а не MTA.
если же рассматривать вариант использования инклудов, то нужно просто
согласовать их количество и места включения.
что касается данного конкретного случая, то я так понял, что устроит
включение инклуда в acl_check_data сразу после проверки письма антивирусами?
как тестовый вариант - я только что вставил в вышеуказанное место в
m4/configure.m4 следующую строку:
sinclude(confSITE_DIR`/configure.acl_smtp_data.m4')
т. о. можно тот acl из начала письма просто сохранить в файле
site/configure.acl_smtp_data.m4
стОит иметь ввиду, что текст файла будет интерпретирован как код для m4.
это чревато ограничениями использования в содержимом файла прямого и
обратного апострофа. в данном случае их нет в тексте acl, так что и
проблемы нет.
если же возникнет необходимость использовать прямые или обратные
апострофы, нужно предварительно переопределить символы кавычек с помощью
changequote на что-то неиспользуемое, лучше даже при переопределении
кавычек использовать строки из нескольких символов (до пяти включительно).
пример:
changequote([[, ]])
в конце файла нужно будет вернуть определие кавычек в исходное состоятие
комадной changequote без аргументов.
пример использования changequote можно посмотреть в нескольких файлах
конфигуратора:
http://mta.org.ua/exim-4.70-conf/m4/check.sh.m4http://mta.org.ua/exim-4.70-conf/m4/fix.sh.m4
выбор подкаталога site обусловлен тем, что даный фрагмент конфига будет
актуален именно для данной системы.
выбор имени файла configure.acl_smtp_data.m4 обусловлен тем, что в
конфигураторе уже могут использоваться файлы configure.general и
configure.smtp_transport_options из подкаталога site.
также в следующей версии конфигуратора файлы site/retry_rules и
site/rewrite_rules будут переименованы в site/configure.retry_rules и
site/configure.rewrite_rules соответственно. разница лишь в том, что они
включаются в m4/configure.m4 безусловно, а
site/configure.acl_smtp_data.m4 будет включен в m4/configure.m4 только
если сам файл site/configure.acl_smtp_data.m4 будет существовать.
будут изменены имена еще трех опциональных инклуд файлов, но они не
анонсированы и используются только в очень специфических целях у пары
коммерческих клиентов.
p. s. изменения в m4/configure.m4 я вносил для версии конфигуратора 4.70.
--
Best wishes Victor Ustugov mailto:victor на corvax.kiev.ua
public GnuPG/PGP key: http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC