<module-SpamCheck>

Модуль находит спам в потоке входящих сообщений.

<module-SpamCheck>
  <log-level>N</log-level>
  <order>N</order>
  <whitelist-ttl>timeout</whitelist-ttl>
  <spf>
    <none>0</none>
    <neutral>0</neutral>
    <pass>-1</pass>
    <fail>1</fail>
    <softfail>0.7</softfail>
    <permerror>0.4</permerror>
  </spf>
  <greylist>
    <mask>N</mask>
    <recipient-ttl>timeout</recipient-ttl>
  </greylist>
  <ip-blacklist-providers>
    <provider>
      <addr>string</addr>
      <value code="N.N.N.N">N</value>
      ...
    </provider>
    ...
  </ip-blacklist-providers>
  <domain-blacklist-providers>
    <provider>
      <addr>string</addr>
      <value code="N.N.N.N">N</value>
      ...
    </provider>
    ...
  </domain-blacklist-providers>
  <ip-whitelist-providers>
    <provider>
      <addr>string</addr>
      <value code="N.N.N.N">N</value>
      ...
    </provider>
    ...
  </ip-whitelist-providers>
  <domain-whitelist-providers>
    <provider>
      <addr>string</addr>
      <value code="N.N.N.N">N</value>
      ...
    </provider>
    ...
  </domain-whitelist-providers>
  <ip-list name="string">...</ip-list>
  ...
  <ptrn-list name="string">
    pattern?1 pattern*2
    pattern?3
  </ptrn-list>
  ...
  <no-check-when>...</no-check-when>
  <reject-when>...</reject-when>
  <greylist-when>...</greylist-when>
  <spam-folder threshold="N">folder</spam-folder>
</module-SpamCheck>
order

Устанавливает порядок в котором модули получают события от модуля SMTP. По-умолчанию: 100.

whitelist-ttl

Время хранения записей в белом списке. По-умолчанию: 60d.

spf

Устанавливает оценки от -1 до 1 соответствующие результатам проверки SPF.

greylist/mask

Количество бит адреса IP клиента использующихся для сравнения в сером списке. По-умолчанию: 24.

greylist/recipient-ttl

Время хранения записи о получателе в сером списке. По-умолчанию: 16h.

ip-blacklist-providers, domain-blacklist-providers, ip-whitelist-providers, domain-whitelist-providers

Провайдеры чёрных списков адресов IP, чёрных списков доменных имён, белых списков адресов IP, белых списков доменных имён.

Каждое XML дерево provider описывает провайдера предоставляющего информацию через запросы к системе DNS. Результат запроса представляет собой адрес IP который рассматривается как код ответа. Узел provider/addr указывает имя сервиса в DNS для запросов, а узлы provider/value задают сопоставление результатов получаемых от провайдера и оценок: значение узла value - даваемая результату оценка, дробное число от -1 до 1, атрибут code - код ответа на запрос, четыре числа разделённых точками, любое число может быть представлено диапазоном в виде [N1-N2]. Пример:

<value code="127.0.0.[2-14]">0.5</value>

В наборе узлов value XML дерева provider рекомендуется использовать весь диапазон значений от -1 до 1.

ip-list

Именованный список адресов IP к которому могут выполняться обращения в выражениях. Атрибут name задаёт имя использующееся в качестве аргумента функций в выражениях. В конфигурации может быть задано множество узлов ip-list.

ptrn-list

Именованный список шаблонов строк разделённых пробелами или переводами строк к которому могут выполняться обращения в выражениях. Атрибут name задаёт имя использующееся в качестве аргумента функций в выражениях. В конфигурации может быть задано множество узлов ptrn-list.

no-check-when

Выражение. Если результатом вычисления является ИСТИНА, сообщение не будет проверяться на спам.

reject-when

Выражение. Если результатом вычисления является ИСТИНА, дальнейший анализ производиться не будет и сообщение не будет принято.

greylist-when

Выражение. Если результатом вычисления является ИСТИНА, доставка сообщения будет проходить через серый список.

spam-folder

Значение узла задаёт имя папок пользователей куда будут помещаться сообщения с конечными результатами оценок выше значения заданного атрибутом threshold.

Значения узлов no-check-when, reject-when и greylist-when представляют собой выражения вычисляемые в ходе работы, результатами вычислений являются значения ИСТИНА или ЛОЖЬ. Выражения состоят из функций, операторов и скобок. Функции должны иметь заданное количество аргументов заключённых в круглые скобки после имени функции и разделённых запятыми. Строковые аргументы записываются в двойных кавычках. Функции без аргументов могут записываться без скобок. Имена функций регистронезависимые.

Часть строки начиная с последовательности символов "//" и до конца строки и части текста между последовательностями символов "/*" и "*/" являются комментариями. Использование комментариев допускается между функциями, операторами или скобками но не среди аргументов функции или между именем функции и её аргументами.

Операторы:

Функции:

RPWL

Возвращает ИСТИНА если адрес Return-Path (MAIL FROM) находится в белом списке, т.е. на этот адрес отправлялись письма из наших доменов.

IPBL

Возвращает значение -1..1 - результат проверки адреса IP клиента у провайдеров чёрных списков.

IPWL

Возвращает значение -1..1 - результат проверки адреса IP клиента у провайдеров белых списков.

DomainBL

Возвращает значение -1..1 - результат проверки доменного имени клиента у провайдеров чёрных списков.

DomainWL

Возвращает значение -1..1 - результат проверки адреса доменного имени клиента у провайдеров белых списков.

SPFNone

Возвращает ИСТИНА если результат проверки SPF "none".

SPFNeutral

Возвращает ИСТИНА если результат проверки SPF "neutral".

SPFPass

Возвращает ИСТИНА если результат проверки SPF "pass".

SPFFail

Возвращает ИСТИНА если результат проверки SPF "fail".

SPFSoftfail

Возвращает ИСТИНА если результат проверки SPF "softfail".

SPFTemperror

Возвращает ИСТИНА если результат проверки SPF "temperror".

SPFPermerror

Возвращает ИСТИНА если результат проверки SPF "permerror".

SPF

Возвращает значение -1..1 - оценка результата проверки SPF, см. узел spf конфигурации.

PTR

Возвращает ИСТИНА если обратная запись DNS для адреса IP клиента существует.

PTRHelo

Возвращает ИСТИНА если строка переданная в команде HELO/EHLO соответствует имени из обратной записи DNS для адреса IP клиента.

PTRSender

Возвращает ИСТИНА если Return-Path (MAIL FROM) соответствует имени из обратной записи DNS для адреса IP клиента.

Match(objects,patterns)

Аргумент objects - строка содержащая одно или несколько ключевых слов разделённых пробелами: HOSTNAME - доменное имя хоста клиента, HELO - строка переданная в команде HELO/EHLO, PR - Return-Path. Аргумент patterns - строка содержащая один или несколько шаблонов разделённых пробелами. Возвращает ИСТИНА если хотя бы один из объектов objects соответствует хотя бы одному шаблону patterns.

MatchList(objects,ptrnlists)

Аргумент objects - строка содержащая одно или несколько ключевых слов разделённых пробелами: HOSTNAME - доменное имя хоста клиента, HELO - строка переданная в команде HELO/EHLO, PR - Return-Path. Аргумент ptrnlists - строка содержащая одно или несколько имён списков шаблонов разделённых пробелами. Именованные списки шаблонов задаются узлами ptrn-list конфигурации. Функция возвращает ИСТИНА если хотя бы один из объектов objects соответствует хотя бы одному шаблону из списков ptrnlists.

IPListed(iplists)

Аргумент iplists - строка содержащая одно или несколько имён списков адресов IP разделённых пробелами. Именованные списки адресов задаются узлами ip-list конфигурации. Возвращает ИСТИНА если адрес IP клиента находится хотя бы в одном списке iplists.



[1] В формате XML символы ">" (больше) и "<" (меньше) представляются сущностями &gt; и &lt; соответственно.