これは、spamassassinのトレーニングに関する一般的な質問のようなものです。 spamassassinを介して受信メールをフィルターするメールサーバーを新しくセットアップしました。最近、フライトの予約にスパムのフラグが付けられ(スコア5)、spamassassinにスパムではないと伝えたいと思います。 (おそらく、これを行うと、変更されたspamassassinヘッダーなしでメールが再送信されますか?)
私は周りを検索してみましたが、spamassassinでメッセージにスパムのフラグを付ける(誤検知の修正ではない)か、電子メールを書いている人のために-スパムとしてフラグを立てないようにする方法のみを見つけています。
したがって、間違った呼び出しについてspamassassinフィードバックを与えることに関して:
メールクライアント内からこれを行う方法はありますか(例:Thunderbird)
メールサーバーのコマンドラインからこれを行う方法はありますか?
できるだけ流動的なプロセスにしたいのですが、仕事を成し遂げるものは何でも。
メールに関する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
この場合に役立つ可能性のある特定のアドバイスと一般的なアドバイスの両方があります。
ここでの根本的な問題は、ガルーダ航空が小さな綿の靴下を祝福して、スパムの特徴の多くを載せた確認メールを送信していることです。件名は非常に大丈夫です。非常に多くの画像と非常に少ないテキストを含む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 =読みたいものあなた何から読みたいものかあなた区別しない-しかしあなたが持っているそれを教えるために努力を注ぎます。
Dovecotを使用しているようです。私は数週間かけてスムーズな統合を理解しようとしました。これにより、ユーザーはメールをcopyコピーすることなく、サーバー側のスパムフィルターを簡単にトレーニングできます。
重要な部分は Antispam Dovecotプラグインです。アンチスパムプラグインは、3つのフォルダグループtrash
、unsure
および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_spam
、antispam_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を備えたテスト可能な環境がありません。