<module-SpamCheck>
Пред. | Глава 3. Конфигурация. | След.

## <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 представляют собой выражения вычисляемые в ходе работы, результатами вычислений являются значения ИСТИНА или ЛОЖЬ. Выражения состоят из функций, операторов и скобок. Функции должны иметь заданное количество аргументов заключённых в круглые скобки после имени функции и разделённых запятыми. Строковые аргументы записываются в двойных кавычках. Функции без аргументов могут записываться без скобок. Имена функций регистронезависимые.

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

Операторы:

- `!` унарное отрицание логического значения,

- `>`[1] ИСТИНА если числовое значение слева больше значения справа,

- `<`[1] ИСТИНА если числовое значение слева меньше значения справа,

- `+` сложение числовых значений,

- `-` унарный знак отрицательного числового значения или вычитание значения справа от значения слева.,

- `*` умножение числовых значений,

- `/` деление числовых значений,

- `and` логическая операция И над логическими значениями,

- `or` логическая операция ИЛИ над логическими значениями.

Функции:

`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; соответственно.

Пред. | Наверх | След.
<module-HTTP> | Начало | <module-Helpers>