web-dev-qa-db-ja.com

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
14
Nick Jennings

この場合に役立つ可能性のある特定のアドバイスと一般的なアドバイスの両方があります。

明確な

ここでの根本的な問題は、ガルーダ航空が小さな綿の靴下を祝福して、スパムの特徴の多くを載せた確認メールを送信していることです。件名は非常に大丈夫です。非常に多くの画像と非常に少ないテキストを含むHTMLのみの電子メール、エンベロープ送信者([email protected])は明らかに機械で構築されたナンスであり、その(アウトソーシングされた)確認システム(amadeus.com)のメールプロバイダーは、役に立たないSPFレコードを持っています(にもかかわらず 反対のすべてのアドバイス 、いくつか送信システムのsomeをリストして終了するレコードに値があると誤って考える人々~all)。

これのほとんどについてできることは多くありません。これらを確実に通過させたい場合は、~/.spamassassin/user_prefsは言うwhitelist_from *@amadeus.comからこれらのメッセージが届きます。さらに進んで、トリガーされたルールの重みを改ざんすることは、おそらく悪い考えです。 SpamAssassin(SA)ルールセットは、膨大な量のスパムをフィルタリングし、そのほとんどに適用される特性を明らかにすることによって作成されます。これらのルールをオフにすると、INBOXをGarudaの確認メールだけでなく、さらに多く開く可能性があります。

一般的な

これは、まさにベイジアンエンジンが適切に処理する状況です。他のルールはトリガーしないが、読みたくないものは含まれているが、それらのルールはトリガーするが自分が含まれているdo 読みたい。

IIRC、あなたがそれを訓練していなければ、エンジンは何もしません。これをトレーニングする最も簡単な方法は、(たとえば)spamおよびhamと呼ばれる2つのフォルダーを維持することです。 spamに、それを作成した電子メールのコピーをINBOXに入れましたが、望んでいませんでした。 hamに、SA)に違反した電子メールのコピーを挿入しましたが、この確認電子メールなど、あなたは望んでいました。

その後、毎晩(またはその程度)と言うcronジョブがあります

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

それに応じてパスを変更します。時間が経つにつれて、これはあなたが何をすべきか、そして何をすべきでないかをエンジンに教えます。ベイジアンスコアが高いとメールのSAスコアに+4.0ポイントが加算されますが、スコアが低いと1.9が減る可能性があるため、十分にトレーニングされたエンジンはSA =読みたいものあなた何から読みたいものかあなた区別しない-しかしあなたが持っているそれを教えるために努力を注ぎます

22
MadHatter

Dovecotを使用しているようです。私は数週間かけてスムーズな統合を理解しようとしました。これにより、ユーザーはメールをcopyコピーすることなく、サーバー側のスパムフィルターを簡単にトレーニングできます。

重要な部分は Antispam Dovecotプラグインです。アンチスパムプラグインは、3つのフォルダグループtrashunsureおよびspam間のmove操作でトリガーされます。具体的には、何か(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_spamantispam_mail_notspam、およびantispam_mail_sendmail_argsによって構成されます。

これはすでにかなりいいです。スパムとしてマークしたメールをスパムフォルダーに移動するようにクライアントを構成できる場合、これは既にクライアントとサーバー間のかなり自動的な統合です。同様に、配信時に(たとえばSieveを使用して)スパムとして分類されたメールをspamfolderに保存するようにサーバーを設定した場合、ユーザーがSpamフォルダーから移動したメッセージはハムとして学習されます。


ThunderbirdおよびKMailとの統合を改善するために、私は antispamのパッチ を作成しましたが、残念ながら上流からフィードバックがありませんでした。 自己責任で使用してください

アンチスパムに設定オプションを追加します。これは、dovecot設定のpluginセクションに簡単に追加できます。

   antispam_spam_flags = "Junk;$JUNK"

(引用符は、$が面白いことをしないようにするために重要です。)

パッチを使用すると、メッセージがスパムフラグを取得した場合、またはすべてのスパムフラグを失った場合に、アンチスパムが学習アクションをトリガーします。フラグはIMAP機能であり、サーバー側の情報のビットを格納するためにクライアントによって使用されます。結局、ThunderbirdとKMailはこれらのフラグを使用してメッセージのジャンク/スパムステータスを保存します。

Junkフラグは、メッセージをジャンクとしてマークしたときにThunderbirdによって設定されます。同様に、$JUNKフラグに対してKMailを設定します。したがって、この構成では、KMailのThunderbirdでメールにJunk/NonJunkのフラグを立てることにより、サーバー側の学習をトリガーできます。

K9-Mailなどの他のクライアントは、デフォルトで迷惑メールをスパムフォルダに移動するため、アンチスパムもトリガーするため、うまく機能します。


同じ機能を IMAPSieve で実装できると思います。これは私のTODOにありますが、残念ながら現在、十分に最近のdovecotを備えたテスト可能な環境がありません。

7
Jonas Schäfer