Spamassassin - оценка по времени суток отправлено - PullRequest
1 голос
/ 13 марта 2020

Можно ли назначить оценку для почты, отправленной в определенные часы. Я обнаружил, что много спама отправляется среди ночи, поэтому хотел бы дать что-нибудь между, скажем, 2 утра и 5 утра счетом 2 или 3.

1 Ответ

1 голос
/ 13 марта 2020

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

Перед тем, как мы начнем, убедитесь, что основные защиты SA правильно настроены:

Если этого недостаточно, вы можете решить проблему, над которой вы работаете. Попробуйте:

  • Плагин RelayCountry , чтобы наказывать страны, с которыми вы никогда не общаетесь, с помощью
  • Плагин TextCat , чтобы различать языки, с которыми вы никогда не общаетесь в

Если все, что не поможет, тогда (и только тогда) вы можете рассмотреть то, что вы предложили. Читайте дальше.


Не забывайте о часовых поясах. По этой причине вы не можете использовать заголовок Date. Этот тип правил небезопасен для развертываний, в которых разговоры охватывают слишком много часовых поясов , и вы должны убедиться, что все серверы записи MX согласованы и находятся в одном часовом поясе. Имейте в виду, что летнее время (так называемое «летнее время») может раздражать здесь.

Определите реле, которое добавляет ваша принимающая инфраструктура, но добавляется до запуска SpamAssassin ( так что SA может это увидеть). Это будет выглядеть как заголовок Received в верхней части вашего письма. Опять же, убедитесь, что он действительно виден SpamAssassin; заголовок Received, добавленный вашим сервером IMAP, не будет виден.

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

Хорошо, все оговорки в стороне, вот пример Полученный заголовок:

Received: from external-host.example.com
        (external-host.example.com [198.51.100.25])
        by mx.mydomain with ESMTPS id ABC123DEF456;
        Fri, 13 Mar 2020 12:34:56 -0400 (EDT)

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

Соответствие что в правиле, которое четко обозначает вас как автора (условно, начните его с ваших инициалов):

header   CL_RCVD_WEE_HOURS Received =~ /\sby\smx\.mydomain\swith\s[^:]{9,64}+:(?<=[0 ][2-4]:)[0-9:]{5}\s-0[45]00\s/
describe CL_RCVD_WEE_HOURS Received by our mx.mydomain relay between 2a and 5a EST/EDT
score    CL_RCVD_WEE_HOURS 0.500

Прогулка по этому регулярному выражению (см. также интерактивное объяснение в Regex101 ):

  • Сначала вам нужно убедиться, что это ваше реле, соответствующее имени: by mx.mydomain with
  • Затем пропустите 9-64 без символы двоеточия (быстро, без возврата, поэтому знак +). Вам нужно убедиться, что на вашем сервере нет двоеточий.
  • Настоящее мясо находится в поиске (так как мы пропустили более часа в целях скорости), которое ищет ведущий ноль (или еще пробел), а затем 2, 3 или 4 (а не 5, поскольку мы не хотим сопоставлять время, например 05:59:59)
  • Наконец, есть проверка работоспособности, чтобы убедиться, что мы глядя на правильный часовой пояс. Я предположил, что вы находитесь в США на восточном побережье, что составляет -0400 или -0500 в зависимости от того, действует ли переход на летнее время

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

Я также дал этому более низкий балл, чем вы хотели. Начните с низкого уровня и медленно поднимайте его по мере необходимости. 3.000 - действительно высокое значение.

...