メールの発信元による迷惑メール判定について(Ver7.33対応版)
 秀丸メールのVersion 6.31β24より、「IPList」って新しい仕組みを追加して、それを迷惑メール判定に生かすようにしました。

 IPListというのは、メールの発信元のIPアドレスと、そのメールが迷惑メールだったかどうかをデータベースとして記録していく仕組みになります。その結果は、秀丸メールのデータ用フォルダの「tkf_IPList.txt」というテキスト形式ファイルに記録されます。
 IPListに記録される対象は、外国から発信されたメールか、または日本国内が発信元だった場合でも、特に迷惑メールを多く発信してる発信元に限ります。日本国内での迷惑メールの発信元は、秀丸メールの迷惑ワードに「++!spip=nnn.nnn.nnn.nnn-mmm.mmm.mmm.mmm」のような形で記録されてて、それを使って判定されます。
 迷惑メールをほとんど発信してない、普通の日本国内から発信されたメールはIPListに記録されず、IPListによる判定対象からも外れます。

IPListの記録形式
 IPListには、1行の中に、日付、IPアドレス、メール本文の16bit-CRC + 迷惑メールかどうかのフラグが記録されます。同じIPアドレスから発信されたメールは、1つの行に複数の「16bit-CRC+迷惑メールかどうか」のセットとして記録されます。
 日付は、記録したメールの中での最新のDate:ヘッダの値が入ります。
 IPアドレスは、上位24bitだけを見て、下位8bitは0にマスクされて比較されます。
 メールのCRCの値は、メール本文から16bit-CRCが生成されて、それを15bitにマスクして使われます。もし15bitにマスクした値が0になった場合は0x7FFFに書き換えられます。最上位の1ビットは迷惑メールかどうか(迷惑メールなら1)となります。
 1つのIPアドレスの中に、16bit-CRCの値が最高で9個まで記録されます。これを超えた分は、古い方から破棄されます。
 IPListの行数は最高で2048行までとなり、それを超えた場合は古い行から削除されます。
 IPListは古い順にソートされて保存されます。
 tkf_IPList.txtに記録される、「16bit-CRC + 迷惑メールかどうか」の値は16進数で記録されます。16進数の4文字のセットの先頭が8〜Fなら迷惑メール、0〜7ならそうじゃないメールってことになります。また、IPアドレスがどの国か分かりやすいように国識別も記録されます。


safe sender判定メールのIPListによる判定
 safe sender判定メールをIPListによってspam判定するロジックは、秀丸メールのVersion 6.54から廃止しました。


unclear判定メールのIPListによる判定
 通常の判定をした結果「unclear」となった場合、そのメールの発信元をIPListから調べて、もしも同じ発信元から迷惑メールしか発信されなかった場合で、その数もそれなりにある場合、「spam (many spam from this IP)」と判定されます。
 ただし、同じような「unclear」判定メールがそれなりに溜まると、それもIPListに迷惑じゃないメールとして反映されるので、その後のunclearメールはそのままunclear扱いになります。
 ほとんどが迷惑判定されるけどたまにunclear判定されるメールが混じるようなケースについては、このIPListによる判定が効いてきます。