これは、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
答え1
この場合に役立つ可能性がある具体的なアドバイスと一般的なアドバイスの両方があります。
特定の
ここでの根本的な問題は、ガルーダ航空が、その小さな綿の靴下を祝福して、スパムの特徴の多くを備えた確認メールを送信していることです。件名は非常に騒々しく、画像が多く、テキストはほとんど含まれていないHTMLのみのメールを送信し、エンベロープ送信者([email protected]
)は明らかに機械で作成されたナンスであり、(アウトソースされた)確認システムのメールプロバイダー(amadeus.com)には役に立たないSPFレコードがあります(私たちのアドバイスはすべて反対です、一部の人々は、リストされた記録に価値があると誤解していますいくつかの送信システムと端末の~all
)。
こうしたことのほとんどについては、できることはあまりありません。これらのメールを確実に通過させたい場合、メールに~/.spamassassin/user_prefs
という行whitelist_from *@amadeus.com
を追加すると、これらのメールが通過します。さらに進んで、トリガーされたルールの重みを改ざんするのは、おそらくよくありません。SpamAssassin (SA) ルールセットは、大量のスパムをフィルタリングし、そのほとんどに当てはまる特性を解明することで作成されます。これらのルールをオフにすると、Garuda の確認メールだけでなく、さらに多くのメールが INBOX に届く可能性があります。
一般的な
これはまさにベイジアンエンジンがうまく処理できる状況です。ベイジアンエンジンは、他のルールをトリガーしないが読みたくない内容を含むメールをフィルタリングし、他のルールをトリガーするが読みたくない内容を含むメールをフィルタリングするように設計されています。する読みたい。
私の記憶が正しければ、エンジンはトレーニングしていないと何もしません。トレーニングする最も簡単な方法は、(たとえば)spam
とという 2 つのフォルダーを維持することですham
。 には、spam
INBOX に入ったが不要なメールのコピーを入れます。 には、ham
この確認メールのように SA に違反したが必要だったメールのコピーを入れます。
そして毎晩(またはそれくらいの頻度で)cronジョブを実行して、
sa-learn --spam --mbox mail/spam
sa-learn --ham --mbox mail/ham
パスを適宜変更します。時間の経過とともに、エンジンはあなたが読みたいものと読みたくないものを学習します。ベイジアンスコアが高いとメールのSAスコアに+4.0ポイント追加され、低いと1.9ポイント減点されるため、よく訓練されたエンジンはSAが何を好んで読むかを区別するのに役立ちます。あなた何から読みたいかあなたしない - しかしそれを教えるには努力が必要です。
答え2
dovecotを使っているようですね。私は数週間かけて、ユーザーがサーバー側のスパムフィルターを簡単にトレーニングできるようなスムーズな統合方法を見つけようとしてきました。コピーメール。
重要なのはアンチスパムDovecotプラグイン。アンチスパムプラグインは、動くtrash
3 つのフォルダー グループ(、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 によってフラグが設定されます。KMail のフラグも同様です。$JUNK
したがって、この設定により、KMail の Thunderbird でメールを迷惑メール/非迷惑メールとしてフラグ付けすることで、サーバー側の学習をトリガーできます。
K9-Mail などの他のクライアントは、デフォルトで迷惑メールをスパム フォルダーに移動するため、引き続き問題なく動作します。これにより、スパム対策もトリガーされます。
同じ機能を実装できると思います。IMAPシーブこれは私の TODO にありますが、残念ながら、十分に新しい dovecot を備えたテスト準備が整った環境が現在ありません。