SpamCheck.

Во время приёма сообщения модуль оценивает различные параметры: наличие в DNS обратной записи для адреса IP клиента, результат проверки SPF, имя передаваемое в команде HELO/EHLO, соответствие Return-Path имени в обратной записи DNS, соответствие домена в поле Message-ID домену в полях From/Sender/Reply-To, результатов поисков адреса IP и домена отправителя в публичных системах белых и чёрных списков, соответствие Return-Path адресам в полях From/Sender/Reply-To, корректность заголовка и др. Результатом оценки каждого параметра является дробное число от -1 (наименьшая вероятность спама) до 1 (наибольшая вероятность спама). Для получения конечной оценки результат оценки каждого параметра умножается на соответствующий параметру коэффициент (от 0 до 1) и подсчитывается среднее арифметическое всех полученных результатов. Таким образом, коэффициенты параметров задают значимость каждого параметра. После получения всего сообщения полученное конечное значение оценки используется для принятия решения о помещении сообщения в папку входящих сообщений или в папку для спама.

Коэффициенты параметров - глобальные динамические величины которые пересчитываются когда пользователи перемещают сообщения между папками входящих писем и спама. Такие действия рассматриваются как корректировка ложно-положительных и ложно-отрицательных результатов проверки на спам. Исходя из этого, будет полезно, особенно на начальном этапе настройки фильтрации, нежелательные сообщения которые не определены модулем SpamCheck как спам и попали в папку INBOX (ложно-отрицательное срабатывание), не удалять, а переносить в папку для нежелательной почты (после чего их можно удалить). А также, переносить не-спам сообщения ошибочно помещённые в папку для нежелательной почты (ложно-положительное срабатывание) в INBOX.

Белый список.

Адреса электронной почты получателей внешних доменов на которые отправляют сообщения локальные пользователи сохраняются в белом списке на заданный период времени. Входящие сообщения с этих адресов можно рассматривать как не являющиеся спамом и не нуждающиеся в проверке. Для этого достаточно указать функцию RPWL в условии no-check-when. Это хороший способ снизить нагрузку на сервер и уменьшить вероятность ложно-положительных срабатываний спам-фильтра. Однако, теоретически возможна ситуация когда у некоторых пользователей работает программное обеспечение настроенное на автоматические ответы на любые сообщения, например, уведомления о том что пользователь находится в отпуске и не может ответить на письма в ближайшее время. В этом случае в белый список будут попадать адреса с которых рассылается спам из сообщений которым удалось пройти проверку на спам (т.е. при ложно-отрицательном срабатывании спам-фильтра). Для исключения таких ситуаций адреса электронной почты локальных пользователей сообщения от которых не следует использовать для пополнения белого списка следует записать в т.н. красный список. Сделать это можно через WEB-интерфейс администратора.

Серый список.

Технология серых списков широко известна в системах фильтрации спама и позволяет отфильтровывать больше количество нежелательных сообщений. Суть метода заключается в том что фильтр запоминает т.н. триплеты входящих сообщений: адрес IP клиента, адрес электронной почты отправителя, адрес электронной почты получателя. При получении сообщения в локальной базе данных производится поиск триплета для этого сообщения. Если поиск не дал результатов - триплет записывается в серый список, а клиенту возвращается ответ означающий временную загруженность сервера и невозможность немедленной обработки сообщения 451 4.4.5 Please try again later, после чего соединение закрывается. Любой правильно работающий MTA повторит попытку доставки сообщения через некоторый промежуток времени. На этот раз триплет будет найден в локальной базе данных и сообщение пройдёт проверку через серый список. Время жизни триплета отсчитывается от момента когда он записывается или обнаруживается в сером списке. Программное обеспечение рассылающее спам, как правило, работает с огромным количеством адресов и не может расходовать ресурсы для механизма повторной отправки недоставленных сообщений.

Главным недостатком данного метода является задержка доставки входящих сообщений локальным пользователям если триплет ещё не находится в локальной базе данных. Время задержки определяется настройками сервера доставляющего нам сообщение. Следует обратить внимание на то что если в конфигурации указан слишком короткий период хранения записей в сером списке, то теоретически может возникнуть ситуация когда триплет будет удалён из локальной базы данных до повторной попытки доставить сообщение, что вызовет повторный отказ на новую попытку доставки сообщения.

Другой возможной проблемой является увеличение времени доставки первого сообщения с новым триплетом когда вторая попытка происходит с другого MTA обслуживающего тот же домен, что вызывает повторный отказ с записью нового триплета (с новым адресом IP) в базу данных. Для обхода таких ситуаций при сравнении и сохранении в сером списке адресов IP используется только заданное в конфигурации количество бит адреса. Предполагается что адреса IP серверов обслуживающих один домен будут принадлежать одной подсети.