[exim-conf] There are too many digits in sender hostname

Victor Ustugov victor на corvax.kiev.ua
Пт Июл 22 13:54:31 EEST 2005


Nikolai V. Ivanyushin wrote:

> Тут заворачивает нужное письмо с диагностикой "There are too many digits 
> in sender hostname".
> 2005-07-21 19:14:03 H=bay108-f3.bay108.hotmail.com (hotmail.com) 
> [65.54.162.13] F=<xxx на hotmail.com> rejected RCPT <xxx на xxx.ru>: There are 
> too many digits in sender hostname
> Я, конечно, выпутался, поставив в conf
> define(`confMAX_DIGITS_SENDER_HOSTNAME', `8')
> define(`confMAX_DIGITS_SENDER_HELO',    `8')
> Кстати, цифр там в fqdn 7, а ставить надо 8, иначе завернет.

да ну. при сборке конфига это значение увеличиватеся на единицу. так что 
семерки должно хватить

вот фрагмент acls/check_digits.m4:

         # Проверка количества цифр в sender hostname
         warn    set acl_m0      = ${if match{${sg\
         {$sender_host_name}{\N\D\N}{}}}\
         {\N\d{eval(confMAX_DIGITS_SENDER_HOSTNAME+1),}\N}{yes}{no}}

вот тут увеличивается на 1 значение confMAX_DIGITS_SENDER_HOSTNAME

         warn    condition       = ${if eq{$acl_m0}{yes}{yes}{no}}
                 hosts           = +relay_from_hosts
                 set acl_m0      = skip

это было исключение по IP адресу хоста отправителя

         warn    condition       = ${if eq{$acl_m0}{yes}{yes}{no}}
                 authenticated   = *
                 set acl_m0      = skip

это было исключение для аутентифицированных отправителей

         warn    condition       = ${if eq{$acl_m0}{yes}{yes}{no}}
                 condition       = ${if eq{$sender_host_name}{}{no}{yes}}
                 condition       = ${lookup{$sender_host_name} 
wildlsearch{CONFDIR/access-relay-dialup}\
                                 {${if or{\
                                         {eq{$value}{ok}}\
                                         {eq{$value}{accept}}\
                                         }\
                                 {yes}{no}}}\
                                 {no}}
                 set acl_m0      = skip

а вот это было исключение, которое описывается в CONFDIR/access-relay-dialup

пропиши там:
\N^bay\d+-f\d+\.bay\d+\.hotmail\.com$ : ok
или вообще
\N^.+\.bay\d+\.hotmail\.com$ : ok

         warn    condition       = ${if eq{$acl_m0}{skip}{yes}{no}}
                 message         = X-Warn-Digits: There are too many 
digits in sender hostname
                 log_message     = There are too many digits in sender 
hostname

получается, что если письмо попало в исключения, то оно не отвергается, 
но в заголовки таки вставляется поле X-Warn-Digits

         deny    condition       = ${if eq{$acl_m0}{yes}{yes}{no}}
                 message         = There are too many digits in sender 
hostname

и только если письмо не попало ни под одно исключение и действительно 
много цифирек в имени хоста, тогда письмо отвергается

> Но хотелось бы иметь файл исключений из этого правила для определенных 
> хостов.

я делал когда-то это исключение для asm'а, но не отразил его в комменах 
в начале acls/check_digits.m4

-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ: 77186900, 32418694      CRV2-RIPE, CRV-UANIC




Подробная информация о списке рассылки exim-conf