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

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

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

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

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

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

решение1

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

решение2

Как использовать Regex в 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."

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

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

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

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

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

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

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