文字セットの使用に基づいて mutt でメッセージを選択するにはどうすればよいですか?

文字セットの使用に基づいて mutt でメッセージを選択するにはどうすればよいですか?

私にとって、中国語の文字またはキリル文字 (ロシア語) を使用するメッセージはすべてスパムであるため、削除対象としてマークしようとしています。

答え1

次のようにしてエンコーディングをフィルタリングできますfoo~h^content-type:.*foo

ただし、これにはかなり制限があります。まず、特定の文字 (中国語の文字、キリル文字など) を使用するメッセージは、UTF-8 でエンコードできます。さらに、添付ファイルのあるメッセージの場合、エンコードは MIME 添付ファイルのヘッダーで指定され、Mutt のパターンの観点からは、これが本文になります。 を使用することもできます~Bfooが、遅くなり、誤検知が発生する可能性があります (添付ファイルのヘッダーが本文の複数の行にある可能性があるため、 を含めることはできませんcontent-type)。

スクリプトを識別できる外部ツールがあるかもしれませんが、それはもはや Mutt とは関係ありません...

これがスパムフィルタリング用である場合、ベイジアンフィルタはこの種の用途に適している可能性があります(スクリプトが何であるかを知る必要はありません)。

特定のスクリプトに属する文字の存在をフィルタリングすることもできます。正規表現を使用して、UTF-8 エンコードの任意の中国語文字に一致させます。これはまだ Mutt では動作しません (将来的には動作するかもしれませんが) が、当面は外部ツールを使用することができます。

最初にデコードせずにフィルタリングすることも可能です (こちらの方が高速です)。たとえば、私は現在、次の pcre 正規表現 (大文字と小文字を区別) を使用して、Postfix でロシア語のスパムをフィルタリングしています。

/^Subject:\s*"?=\?[Uu][Tt][Ff]-8\?[Bb]\?(0[J-Z]|(KN|W9)[C-R])/i

関連情報