noriyuruの日記: Kipple mail - The Postman Always 'spams' Twice -
日記 by
noriyuru
“郵便配達は二度spamを送る”フィルター、通称“The PAsT”方式。
普通、同じメールを二通以上送らないし必要により送ったとしても一通だけ受け取ればよい。この考えを元にspamフィルターを作る。
欠点:必ず一度は受け取らなくてはならない。
この方法ではspamは0にはできない。工夫をすればspam判定以外に役立てる事ができる。たとえば繰り返されるcron通知の“エッジ”を知ることができる。
メールにおける“同じ”を定義しなければならない。特に対spam戦においては曖昧さに対応する必要もある。
まず、ヘッダーは全滅。やはりボディーが頼りだ。既存のフィルターを抜けてきたメールは読まなければいけないメールとして定義される。これのボディーを保存する。後から来たメールは保存されているボディーと比較して同じかどうか判定する。ボディの保存方法はいくつか考えられる。完全一致ならハッシュ化が考えられるし、曖昧判定のため全文を保存しdiffする方法も考えられる。行ごとや、なんらかのブロック分けをして保存することも考えられる。
次に、判定プロセスができたところで、どのように仕分けるかを考える。
普通、同じメールを二通以上送らないし必要により送ったとしても一通だけ受け取ればよい。この考えを元にspamフィルターを作る。
欠点:必ず一度は受け取らなくてはならない。
この方法ではspamは0にはできない。工夫をすればspam判定以外に役立てる事ができる。たとえば繰り返されるcron通知の“エッジ”を知ることができる。
メールにおける“同じ”を定義しなければならない。特に対spam戦においては曖昧さに対応する必要もある。
まず、ヘッダーは全滅。やはりボディーが頼りだ。既存のフィルターを抜けてきたメールは読まなければいけないメールとして定義される。これのボディーを保存する。後から来たメールは保存されているボディーと比較して同じかどうか判定する。ボディの保存方法はいくつか考えられる。完全一致ならハッシュ化が考えられるし、曖昧判定のため全文を保存しdiffする方法も考えられる。行ごとや、なんらかのブロック分けをして保存することも考えられる。
次に、判定プロセスができたところで、どのように仕分けるかを考える。