Как заблокировать спам-рассылку

Мне надоедает спам-почта, приходящая на несуществующие адреса на моём сайте. Конечно, такие письма не доставляются, но они засоряют логи. Поскольку у меня нет исходных IP-адресов, можно ли как-то блокировать почту по адресу отправителя? Я знаю, что они постоянно меняются, но ищу рекомендации. Мой Discourse размещён самостоятельно.

Эта тема может помочь, если вы её ещё не видели:

Вы можете отфильтровать большинство IP-адресов спамеров из логов с помощью этой команды (это не является строгим требованием RFC, но почти все спам-релей не имеют корректной PTR-записи):

./launcher logs mail-receiver | grep -v 'unknown' | grep -E 'NOQUEUE'

Если спам приходит с, казалось бы, легитимного сервера, всё ещё сложно блокировать отправителей по домену электронной почты, так как его легко подделать. Поэтому лучший вариант — найти IP-адрес отправляющего SMTP-сервера и заблокировать его:

./launcher logs mail-receiver | grep -E '[0-9A-F]{10,}:.+(from=<[^>]|client=)'

Первый результат в паре даст вам IP-адрес SMTP-сервера, а второй — адрес отправителя.

Вы можете использовать инструкции, описанные в

для настройки mail-receiver. С помощью этого подхода мне удалось устранить почти весь спам.

Звучит как небольшая административная неудобность — сравните это с последствиями неидеального блокирования, которое мешает реальному человеку внести реальный вклад в ваш форум. Лично я не стал бы использовать какой-либо вид блокировки, потому что никогда не хочу терять ценные отзывы, даже если цена этого — получение некоторого количества некорректных данных.