dnl dnl Проверка наличия HELO в черном списке dnl dnl черный список HELO находится в файле confCONFDIR/access-helo в виде: dnl : <значение> dnl dnl в качестве "значения" могут выступать: dnl ok - принимать сообщения с данным mail from dnl warn - добавлять в заголовки сообщения поле X-Warn-Sender dnl текст сообщения об ошибке может быть указан через двоеточие dnl deny - отвергать сообщения с данным mail from dnl текст сообщения об ошибке может быть указан через двоеточие dnl dnl пример: dnl # Our own HELO dnl # HMY -- HELO used my credentials dnl # dnl [127.0.0.1] : deny : HMY: Invalid greeting used dnl localhost : deny : HMY: Invalid greeting used dnl [194.183.174.249] : deny : HMY: Invalid greeting used dnl domain.tld : deny : HMY: Invalid greeting used dnl # untrusted HELO dnl # HBL -- HELO blacklisted dnl \N^.+\.localhost\N : deny : HBL: Invalid greeting used dnl localhost.localdomain : deny : HBL: Invalid greeting used dnl compuserv.com : deny : HBL: Invalid greeting used dnl microsoft.com : deny : HBL: Invalid greeting used dnl QRJATIDY : deny : HBL: Invalid greeting used dnl QRJATYDI : deny : HBL: Invalid greeting used dnl # Проверка наличия HELO в черном списке # HBL -- HELO is Black-Listed warn set acl_m0 = ${lookup{$sender_helo_name}wildlsearch{CONFDIR/access-helo}} warn condition = ${if eq{$acl_m0}{}{no}{yes}} condition = ${if match{$acl_m0}{\N(?i)^\s*(warn).*$\N}{yes}{no}} log_message = HELO is black-Listed message = X-Warn-HELO-Blacklisted: \ ${if match{$acl_m1}{\N(?i)^\s*(warn)\s*:\s*(.+)$\N}\ {$2}{HELO $sender_helo_name blacklisted}} deny log_message = HELO is black-listed condition = ${if match{$acl_m0}{\N(?i)^\s*(deny|reject).*$\N}{yes}{no}} message = ${if match{$acl_m0}{\N(?i)^\s*(deny|reject)\s*:\s*(.+)$\N}\ {$2}{Invalid greeting used}}