Spamassassin пометил как спам что-то, что спамом не является. Как мне это указать?

Spamassassin пометил как спам что-то, что спамом не является. Как мне это указать?

Это своего рода общий вопрос об обучении spamassassin. У меня есть недавно настроенный почтовый сервер, который фильтрует входящую почту через spamassassin. Недавно я получил бронирование рейса, помеченное как спам (оценка 5), и хотел бы сообщить spamassassin, что это не спам. (Возможно, это также приведет к повторной отправке почты без измененных заголовков spamassassin?)

Я попытался поискать информацию, но нашел только информацию о том, как заставить spamassassin помечать сообщения как спам (но не об исправлении ложных срабатываний), или о том, как людям, пишущим электронные письма, не попасть под отметку спама.

Итак, что касается предоставления отзывов spamassassin о неправильных вызовах:

  1. Есть ли способ сделать это из почтового клиента (например, Thunderbird)?

  2. Есть ли способ сделать это через командную строку на почтовом сервере?

Мне бы хотелось сделать этот процесс максимально гибким, но главное, чтобы работа была выполнена.

Подробности от SpamAssassin относительно письма:

 0.0 FSL_HELO_NON_FQDN_1    No description available.
 0.6 HK_RANDOM_ENVFROM      Envelope sender username looks random
-0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/, no trust [82.150.225.129 listed in list.dnswl.org]
-0.0 RCVD_IN_MSPIKE_H3      RBL: Good reputation (+3) [82.150.225.129 listed in wl.mailspike.net]
 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level mail domains are different
 1.0 SPF_SOFTFAIL           SPF: sender does not match SPF record (softfail)
 1.6 SUBJ_ALL_CAPS          Subject is all capitals
 1.1 MIME_HTML_ONLY         BODY: Message only has text/html MIME parts
 0.7 HTML_IMAGE_ONLY_20     BODY: HTML: images with 1600-2000 bytes of words
 0.0 HTML_MESSAGE           BODY: HTML included in message
-0.0 RCVD_IN_MSPIKE_WL      Mailspike good senders
 0.0 UNPARSEABLE_RELAY      Informational: message has unparseable relay lines
 0.0 T_REMOTE_IMAGE         Message contains an external image

Очевидно, что главными виновниками являются тема письма, написанная заглавными буквами (SUBJ_ALL_CAPS) и MIME_HTML_ONLY (я полагаю, отсутствие текстовой альтернативы).

Письмо было направлено на подтверждение бронирования рейса, а тема выглядела следующим образом:

 Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS

Заголовки:

X-Envelope-From: <[email protected]>
X-Envelope-To: <[email protected]>
Received: from mail1.amadeus.net (unknown)
    by 147-49-15-51.rev.cloud.scaleway.com(Postfix 3.1.0/8.13.0) with SMTP id unknown
    Fri, 20 Jan 2017 07:55:10 +0000
    (envelope-from <[email protected]>
Received: from obeap115 (nat-dns-mnp.amadeus.net [82.150.225.129])
    by mail1.amadeus.net (Postfix) with ESMTP id 3F7A9200042
    for <[email protected]>; Fri, 20 Jan 2017 07:55:10 +0000 (GMT)
From: [email protected]
TO: [email protected]
Message-ID: <CTS/GA/C50D54421A07/[email protected]>
FND-Request-ID: <CTS/GA/C50D54421A07/[email protected]>
Job-ID: 1
Subject: JENNINGS/NICHOLAS KOSSOW MR 24 JAN MOF DPS
Date: Fri, 20 Jan 2017 07:55:09 +0000
Content-Type: multipart/mixed; 
    boundary="----=_Part_191904_1900935199.1484898909762"
MIME-Version: 1.0

решение1

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

Специфический

Основная проблема здесь в том, что Garuda Airlines, благослови их маленькие хлопковые носочки, отправляет письма с подтверждением, которые несут на себе множество признаков спама. Тема письма ОЧЕНЬ КРИЧАЩАЯ, они отправляют письма только в формате HTML, которые содержат довольно много изображений и очень мало текста, отправитель конверта ( [email protected]) — это явно сконструированный машиной nonce, а поставщик электронной почты для их (аутсорсинговой) системы подтверждения (amadeus.com) имеет бесполезную запись SPF (несмотря навсе наши советы противоположны, некоторые люди ошибочно полагают, что запись, в которой перечисленынекоторыйих отправляющих систем и конечных точек ~all).

С большинством из этого вы мало что можете сделать. Если вы хотите быть уверены, что они будут доставлены, добавьте в свой адрес строку, ~/.spamassassin/user_prefsкоторая говорит, whitelist_from *@amadeus.comчто эти сообщения будут доставлены вам. Идти дальше и вмешиваться в веса правил, которые были запущены, вероятно, плохая идея. Набор правил SpamAssassin (SA) создается путем фильтрации огромного объема спама и определения того, какие характеристики применимы к большей его части; вы, вероятно, откроете свой ВХОДЯЩИЙ ЯЩИК для гораздо большего, чем просто письма-подтверждения Garuda, отключив эти правила.

Общий

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

IIRC, движок ничего не сделает, если вы его не обучите. Самый простой способ обучить его — это поддерживать две папки, называемые (скажем) spamи ham. В spamвы помещаете копии писем, которые попали в ваш ВХОДЯЩИЙ ЯЩИК, но вы этого не хотели; в hamвы помещаете копии писем, которые не соответствовали требованиям SA, но вы этого хотели, например, это письмо с подтверждением.

Затем каждую ночь (или около того) у вас есть задание cron, которое говорит:

sa-learn --spam --mbox mail/spam
sa-learn --ham  --mbox mail/ham

соответствующим образом изменяя пути. Со временем это научит движок тому, что вам нравится читать, а что нет. Поскольку высокий байесовский балл может добавить +4,0 балла к баллу SA письма, а низкий может вычесть 1,9, хорошо обученный движок может действительно помочь SA отличить то, чтотыхочу прочитать из чеготыне - новам придется приложить усилия, чтобы научить его.

решение2

Кажется, вы используете dovecot. Я потратил несколько недель, пытаясь найти плавную интеграцию, которая позволит пользователям легко обучать серверные спам-фильтры без необходимостикопияпочты.

Ключевая часть — этоАнтиспамПлагин Dovecot. Плагин антиспама срабатывает надвигатьсяоперации между тремя группами папок: trash, unsureи spam. В частности, при обнаружении перехода из чего-либо (кроме spam) в spam, запускается действие обучения спаму, а при обнаружении перехода из spamв unsure, запускается действие обучения нежелательной почте.

Он поддерживает различные обучающие бэкэнды. Простейший из них — mailtrain, который просто выполняет команду и помещает почту на стандартный ввод. Конфигурация для этого может выглядеть так:

plugin {
   antispam_backend = mailtrain
   antispam_mail_sendmail = /usr/local/bin/sa-learn-stdin.sh
   antispam_mail_spam = spam
   antispam_mail_notspam = ham
   antispam_mail_sendmail_args = -L
   antispam_spam = Junk;INBOX.Junk
   antispam_trash = Trash;INBOX.Trash
   antispam_allow_append_to_spam = no
}

Вместе с /usr/local/bin/sa-learn-stdin.sh:

#!/bin/bash
/usr/bin/spamc "$@" >> /tmp/sa-learn-log
exit 0

Конфигурация гласит: «Чтобы узнать как спам, запустите /usr/local/bin/sa-learn-stdin.sh -L spam, а чтобы узнать как хам, запустите /usr/local/bin/sa-learn-stdin.sh -L ham». Аргументы настраиваются с помощью antispam_mail_spam, antispam_mail_notspamи antispam_mail_sendmail_args.

Это уже довольно неплохо. Если вы можете настроить свой клиент на перемещение писем, которые вы помечаете как спам, в папку спама, это уже довольно автоматическая интеграция между клиентом и сервером. Аналогично, если вы настроите сервер на хранение писем, классифицированных как спам, в папке спама при доставке (например, с помощью Sieve), сообщение будет распознано как нежелательное, когда пользователь переместит его из папки спама.


Для улучшения интеграции с Thunderbird и KMail я написалпатч для антиспама, который, к сожалению, не получил никакой обратной связи от вышестоящей инстанции;Используйте на свой риск.

Он добавляет опцию конфигурации антиспама, которую можно просто добавить в pluginраздел конфигурации dovecot:

   antispam_spam_flags = "Junk;$JUNK"

(Кавычки важны, чтобы не допустить $ничего смешного.)

С патчем антиспам будеттакжеактивировать обучающее действие, если сообщение получает флаг спама или теряет все свои флаги спама. Флаги — это функция IMAP, используемая клиентами для хранения битов информации на стороне сервера. Оказывается, Thunderbird и KMail используют эти флаги для хранения статуса спама/нежелательной почты сообщений.

Флаг Junkустанавливается Thunderbird, когда вы отмечаете сообщение как спам. Аналогично для $JUNKфлага KMail. Таким образом, с помощью этой конфигурации вы можете запустить обучение на стороне сервера, пометив почту как спам/не спам в Thunderbird в KMail.

Другие клиенты, такие как K9-Mail, по-прежнему прекрасно справляются со своей задачей, поскольку по умолчанию они перемещают ненужные письма в папку «Спам», на которую также срабатывает антиспам.


Я думаю, что ту же функциональность можно реализовать вIMAPSieve. Это есть в моем списке дел, но, к сожалению, в настоящее время у меня нет готовой к тестированию среды с достаточно новой версией Dovecot.

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