popfile正規表現マグネットメモ

v0.20.1
popfileのマグネット定義に正規表現が使いたい。

669行目
# $value =~ s/\\(\?|\*|\||\(|\)|\[|\]|\{|\}|\^|\$|\.)/$1/g;
なんのためにあるのかわからないけど正規表現が壊れるのでコメントアウト。
890行目ぐらい。
# $match = lc($match);

Classifier\Bayes.pm の 900行目あたり。
マッチング高速化のために長さをチェックしてからマッチングをかけているのをなくして(正規表現だと表現自身よりも短いのにマッチしたりするから)
substr() を正規表現マッチングに書き換え。
#$magnet = lc($magnet);
#for my $i (0..(length($match)-length($magnet))) {
# if ( substr( $match, $i, length($magnet)) eq $magnet ) {
if ( $match =~ /$magnet/ ) {

ログは $self->log_() で出る。

subject ^\[\w+\s*\W?\s*\d+\]
でML prefix にマッチ。
日本語のbase64エンコーディングマーカーには注意。

OutlookExpressでサブジェクトを変更して分類したくないので
かわりにCCにX-Text-Classificationを追加したい。

1565行目
# Add the XTC header
$msg_head_after .= “X-Text-Classification: $classification$crlf” if ( ( $self->global_config_( ‘xtc’ ) ) && # PROFILE BLOCK START
( $self->{parameters__}{$classification}{quarantine} == 0 ) ); # PROFILE BLOCK STOP

ここCCに変更。


About this entry