Проверка HELO в acSMTP
Для [не рекомендуемого] включения проверки HELO в Eserv/3 в файлах acSMTP\conf\smtp\HELO.rules.txt и acSMTP\conf\smtp\EHLO.rules.txt ниже строк\ INCOMINGHOST GetHostIP DUP | NIP DUP 790 LOG
\ 0= | PeerIP <> | 791 LOG
добавить строки:IsLanClient 0=
[IF]
INCOMINGHOST GetHostIP DUP | NIP DUP " 550 Can't get IP of HELO host, err={n}{CRLF}" STR@ StopProtocol \EOF
0= | PeerIP <> | " 550 IP of HELO host not match PeerIP{CRLF}" STR@ StopProtocol \EOF
PeerIP GetHostName DUP | NIP NIP " 550 Can't get host name of {CLIENT}, err={n}{CRLF}" STR@ StopProtocol \EOF
0= | INCOMINGHOST COMPARE-U | " 550 HELO not match PTR{CRLF}" STR@ StopProtocol \EOF
[THEN]
Модифицированный HELO.rules.txt
Традиционные заблуждения
Обратите внимание, что хост SMTP-клиента [b]НЕ ОБЯЗАН[/b] иметь доменное имя (PTR в DNS для его IP). RFC2821 (п. 4.1.1.1) говорит буквально следующее:[quote="rfc"]The argument field contains the fully-qualified domain name of the SMTP client [b]if one is available[/b]. In situations in which the SMTP client system does not have a meaningful domain name (e.g., when its address is dynamically allocated and no reverse mapping record is available), the [quote="support"]client SHOULD send an address literal[/quote] (see section 4.1.3), optionally followed by information that will help to identify the client system.
[/quote] Перевод: [quote="rfc"]Поле аргумента содержит полное доменное имя SMTP-клиента, [b]если оно доступно[/b] [т.е. если оно у него есть — E.S.]. В ситуациях, в которых SMTP-клиент не имеет осмысленного доменного имени (т.е. когда его адрес выделяется динамически, и записей обратного отображения нет), [b]клиент МОЖЕТ отправить литерал адреса[/b] (см. секцию 4.1.3), опционально с информацией, помогающей идентифицировать клиентскую систему.[/quote] К сожалению, в современной практике при настройке значительной части MX-серверов указанное положение SMTP RFC игнорируется — серверы настраиваются так, [b]чтобы клиент без доменного имени не мог отправить письмо[/b] (это одна из антиспам-техник). Мы НЕ рекомендуем настраивать ваши Eserv'ы таким образом (т.е. не рекомендуем добавлять строки конфигурации, указанные в начале этой страницы), но вы ВЫНУЖДЕНЫ настраивать свои Eserv'ы так, чтобы в исходящей почте домен в HELO соответствовал вашему IP (PTR'у для этого IP) — правильно настраивать опцию Server[HostName] — иначе значительная часть SMTP-серверов будет отвергать вашу почту.
Процитируем также п 4.1.3. про литералы адреса, упомянутые выше.
[quote="rfc"]4.1.3 Address Literals
Sometimes a host is not known to the domain name system and communication (and, in particular, communication to report and repair
the error) is blocked. To bypass this barrier a [b]special literal form of the address is allowed as an alternative to a domain name[/b]. For IPv4 addresses, this form uses four small decimal integers separated by dots and enclosed by brackets such as [123.255.37.2], which indicates an (IPv4) Internet Address in sequence-of-octets form.[/quote]
[quote="rfc"]4.1.3 Адресные литералы Иногда хост не известен в системе доменных имён, и связь (и, в частности, связь для отчета и исправления ошибки) блокируется. Для преодоления этого барьера [b]специальная литеральная форма адреса допускается в качестве альтернативы доменному имени[/b]. Для IPv4-адресов, эта форма использует маленькие десятичные целые числа, разделенные точками и заключенные в квадратные скобки как [123.255.37.2], что обозначает (IPv4) Интернет-Адрес в форме последовательности-октетов.[/quote]