最近送られてくるスパムメールはGmailに送られてくる英語表記のものとWebサイト管理者用に設定しているメールアドレスに送られてくる日本語表記のものがほとんどで、どちらもHTML形式のメールになっています。Web管理者用のメールアドレスに送られてくるスパムメールは高性能なスパムメールフィルターに切り替えることで受信されなくなりました。Gmailに関してはGmailの標準機能でスパムメールに分類されるものの、迷惑メールとして扱われるだけなので迷惑メールホルダーに入ってしまい、嫌でも目にすることになります。Gmailのフィルターを使うにしてもスパムメールがどのように作られているのか理解しておく必要があります。
スパムメールはメールヘッダーと呼ばれるメールの送受信情報を大きく改竄しているので、メールソフトで見えている情報での検索では炙り出せませんし、本文も特殊な文字コードで表現していることから目に見える文字列でフィルターをかけようとしてもうまくいきません。Gmailの場合はPCのブラウザでGmailにログインしてスパムメールを開き、右上の三点メニューから「原文を表示」を選ぶとメールがどのように作られているのかが判ります。

メールソフトで見たメールは以下のように見えます。

このメールの原文表示を行うとまずメールヘッダーと呼ばれる部分が表示されます。

実際に配信されたメールアドレスは私のGmailアドレスなのですが、このメールヘッダー情報ではGmailアドレスは見えていません。また、メールの正当性を示す三つのチェック項目のうち、SPF(Sender Policy Framework:送信サーバーの身元確認)とDKIM(DomainKeys Identified Mail:メールの電子署名)については「PASS」になっていますが、DMARK(Domain-based Message Authentication Reporting and Conformance)については「FAIL」と判定されています。将来的にはGmailでDMARKによるメール仕分けも行えるようになるかもしれませんが、現時点ではまだチェック対象とはできません。仕方がないのでGmailのメール仕分け(フィルター)機能を使ってスパムメール対応を行おうと考えました。

内容はほぼ同じでもメールアドレスなどは改竄されていてチェック対象とすることができません。SPFでチェックされているIPアドレスはメールソフトのフィルターに設定項目がありません。いくつかのフィルターを試してみて、メールの文字列チェックで「alert-??」(??は数字を表す)を含むものと指定すると取り敢えず上の二種類のメールを抜き出すことができました。
因みにメール本文は以下のようになっています。

これは文字コードで文章を表現しているのでこの中を検索しても狙った文字列を探し出すことはできません。最初のメールにある「Payment failed」という文字列をフィルターに設定しても無駄なのです。中国からのものと思われる日本語メールの場合は日本語文字の間にHTMLでは無視される文字列をちりばめてあって、目で見る文字列と実際にメール本文に書かれた文字列が一致しないようにされていました。あの手この手でチェックをすり抜けようとしてきますので果てしない「いたちごっこ」が続くのでしょう。