Назад | Перейти на главную страницу

Конфигурация sendmail access_db. Как это используется и как это писать

Я читаю о функции sendmail access_db. Судя по всему, это выглядит многообещающим в качестве превентивного способа остановить спам.

У меня есть несколько вопросов, связанных с использованием access_db. По сути, я указываю набор правил в файле доступа, и sendmail проверяет эту базу данных, чтобы узнать, следует ли что-либо делать с электронной почтой.

  1. Как насчет писем, не соответствующих ни одному из указанных правил? Какое поведение по умолчанию?
  2. Могу ли я использовать регулярное выражение? Например, будет ли работать «Кому: * @ spam.com REJECT»?
  3. Если у меня есть только «paypal.com RELAY», значит ли это, что моя sendmail будет принимать и отправлять электронные письма, отправленные или предназначенные для paypal.com?

Большое спасибо!

  1. Если правило не соответствует правилам в access_db, это не влияет на принятие или отклонение сообщения. Сообщение продолжает обрабатываться по остальным правилам.
  2. access_db (и любые подстановочные знаки, но не регулярные выражения) описаны Вот. Если вам нужны регулярные выражения, вам нужно либо написать свои собственные наборы правил, которые имитируют поведение access_db, но использовать карту регулярных выражений, либо использовать milter, например MIMEDefang, или milter-regex.
  3. Лучше всего использовать правила, начинающиеся с From: или Connect: вместо обычных IP-адресов или доменов, чтобы не приходилось думать, касается ли правило доменного имени хоста, который подключается к вашему хосту, или доменного имени адреса отправителя (они не обязательно совпадают).

Как использовать регулярное выражение в Sendmail

Я получал спам со всех числовых доменов, например 3456.com, сначала я добавил 10 000 записей в access.db, что было смешно.

В вашем файле sendmail.mc, внизу, после почтовых программ, вы можете добавить такое регулярное выражение.

LOCAL_CONFIG
Kallnumbers regex -a@MATCH @[0-9]+\.com
LOCAL_RULESETS
SLocal_check_mail
R$+     $: $(allnumbers $1 $)
R@MATCH     $#error $: "550 Rejected."

Вы можете скопировать большую часть его verbatum, просто изменив несколько вещей.

Определите свое регулярное выражение и дайте ему идентификатор, добавив к нему префикс K мой идентификатор allnumbers и мое регулярное выражение [0-9]+\.com

   Kallnumbers regex -a@MATCH @[0-9]+\.com

последние два определяют совпадение и предпринятые действия

R$+     $: $(allnumbers $1 $)
R@MATCH     $#error $: "550 Rejected.

Я понимаю, что это выглядит очень cf, но это идет в MC.