Contact Form 7のメールが、さくらサーバの迷惑フィルタでスパム判定、受信できない!

パソコン メールチェックする男性

スパムメールって、本当に迷惑ですよね。いらないメールが届くのも面倒ですが、必要なメールが届かないのも大変困ります!

先日公開した無料 WordPressテーマの、申し込みフォーム。WordPressのブラグイン「Contact Form 7」のフォームで申し込まれたはずのメールが、いつまでたっても受信しないので、まさかと思ってさくらのサーバをWebメールで見に行くと、やはり迷惑フィルタに引っかかって、迷惑フォルダの中に振り分けられていました。

さくらインターネットでは、SpamAssassin(スパムアサシン) という迷惑メールフィルタ機能を使っているようで、スパム判定するにあたっては、以下の基準が上げられるとのこと。

  • HTMLメールである
  • 送信元メールアドレスのアカウント部分に数字やアンダーバー(_)等の特殊記号が含まれている
  • 送信元のメールアドレスを異なるメールアドレスに設定している
  • (なりすましメール・差出人詐称)
  • 件名に「!」「?」等の記号が含まれている
  • 本文中にURLが記述されている

(引用:SpamAssassinの判定基準

しかし、迷惑判定されたメールのソースを調べてみると、新たなことがわかりました。

 

スコアが7.0を超えるとスパム判定されるらしい

X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on www1586.sakura.ne.jp
X-Spam-Flag: YES
X-Spam-Level: *******
X-Spam-Status: Yes, score=7.6 required=7.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED,
FREEMAIL_FROM,NML_ADSP_CUSTOM_MED,TVD_SPACE_ENCODED,TVD_SPACE_ENC_FM_MIME,
TVD_SPACE_RATIO_MINFP,URIBL_BLOCKED,URIBL_SBL autolearn=no version=3.3.2
X-Spam-Report:
* 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider
* (iftaf.press[at]gmail.com)
* 0.0 DKIM_ADSP_CUSTOM_MED No valid author signature, adsp_override is
* CUSTOM_MED
* -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1%
* [score: 0.0000]
* 0.0 URIBL_BLOCKED ADMINISTRATOR NOTICE: The query to URIBL was blocked.
* See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block
* for more information.
* [URIs: web-aqua.jp]
* 1.6 URIBL_SBL Contains an URL’s NS IP listed in the SBL blocklist
* [URIs: web-aqua.jp]
* 2.0 TVD_SPACE_ENC_FM_MIME TVD_SPACE_ENC_FM_MIME
* 0.9 NML_ADSP_CUSTOM_MED ADSP custom_med hit, and not from a mailing list
* 2.3 TVD_SPACE_ENCODED TVD_SPACE_ENCODED
* 2.7 TVD_SPACE_RATIO_MINFP TVD_SPACE_RATIO_MINFP

私のところに届くはずだったメールは、本文中にURLが記載されているくらいで、それ以外には問題なさそうでしたが、メールのソースに書かれている、X-Spam-Status というものを見てみると、なんと7.6 ものハイスコアを出していました。どうやら7.0 を超えるとスパム判定されるようです。

では、何が原因なのかと見てみると、大きいのは最後の2行。
 

TVD_SPACE_ENCODED TVD_SPACE_ENCODED

これは、単語と単語の間に入るべき空白が入っていない場合に、不正なものとして検出するものです。
キーワードでのスパム検出技術を避けるため、スペースを入れずに単語を続けて入力するタイプのスパムが増えており、これは、そうしたスパムに対処する目的のルールなのですが、空白を使用しない日本語の場合、正常なメールでもスパムとしてスコアを加算されてしまいます。(引用:届くべきメールがスパムメールとして隔離されてしまう問題

 

TVD_SPACE_RATIO_MINFP TVD_SPACE_RATIO_MINFP

こちらは、添付ファイルのMIMEエンコードをする際に、付けられるMIMEヘッダと本文の空行が欠落している場合に、それを検出するもので、画像ファイルを添付した際などに、お使いのメーラーやメールサーバーによって改行が削除されてしまう場合があります。

 

対処方法

MDaemonのスパム対策機能の1つ、SpamAssassinの8月31日に更新された定義ファイルにおいて、メールチェック時における次の2つの項目での加算スコアが、1.0未満から、3.0、3.5と増え、この2つに当てはまるだけで、+6.5と、デフォルトの閾値である7.0の境界線を超えやすいものとなってしまっています。
 TVD_SPACE_ENCODED
 TVD_SPACE_RATIO_MINFP

対策としては、MDaemonSpamAssasinruleslocal.cf ファイルの最後に、以下の2行を追加して MDaemonのアンチスパム機能を再起動して下さい。
 score TVD_SPACE_ENCODED 0.0
 score TVD_SPACE_RATIO_MINFP 0.0

これにより、誤判定はされなくなります。
(引用:届くべきメールがスパムメールとして隔離されてしまう問題

 
対処方法の情報は見つかりましたが、残念ながら私にはよくわかりません。ですのでとりあえず、しばらくは迷惑メールフィルタの学習をコツコツさせて、Webメールの迷惑フォルダをときどき見に行くようにしようと考えています。

ホワイトリストが、メールアドレスではなく、件名で設定できたらいいのに…