Как postgrey отслеживает входящую почту

Как postgrey отслеживает входящую почту

Мне нужно понять, как postgrey отслеживает входящую почту. Я знаю концепцию того, как работает greylisting, но мне интересно узнать о фактическом методе. Greylisting подсчитывает количество раз, когда почтовый сервер успешно отправлял сообщение за определенный период времени, и если он достигает желаемого порогового значения, он становится известным почтовым хостом на X период времени.

Я это понимаю.

Но если определенное сообщение приходит в первый раз с неизвестного почтового хоста, как postgrey отслеживает это индивидуальное сообщение? То есть, когда оно возвращается с соответствующего сервера во второй раз, как postgrey узнает, что это было «отложенное» сообщение?

решение1

Подводя итоги поведения: проверка выполняется по IP-адресу+отправителю+получателю. Состояния соединения хранятся в базе данных Berkeley.

При появлении соединения:

  • если он входит в определенный белый список, он принимается;
  • если его нет в БД, он добавляется в БД и соединение отклоняется;
  • если в БД:
    • если это первая повторная попытка, она выходит за рамки retry_window и удаляется из БД;
    • если он находится в определенном retry_window, соединение будет принято.

ОтСерый список для предотвращения спама

Триплет IP-адреса, отправителя и получателя теперь будет сохранен в базе данных postgrey как «известный отправитель», и последующие письма с того же адреса будут доставляться немедленно, без каких-либо задержек.

Поскольку большинство спамеров этого не делают — попробуйте отправить письмо еще раз — большинство спам-писем будут просто проигнорированы.

Откомментарии к источнику posgrey

выясняем, была ли последняя попытка неудачной, чтобы можно было добавить заголовок, сообщающий, сколько времени пришлось ждать.
....
отбрасываем сохраненный first-seed, если это первая повторная попытка и она находится за пределами retry_window.

Связанный контент