SHELL=/bin/sh
PATH=/usr/local/bin:/opt/sfw/bin:/usr/bin:/bin
CONFDIR=/export/home/mailuser/masaharu
LOGFILE=/export/home/mailuser/masaharu/var/log/procmail
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
NGWORD=$CONFDIR/procmail-bwd
NGEXT=$CONFDIR/procmail-ext
BLACKLIST=$CONFDIR/black-list
| To: か Cc: に5つ以上、小生と同じプロバイダと同じドメインが、含まれる場合はスパムとみなすレシピ |
:0 H
* 9876543210^0 ^To:\/.*@プロバイダのドメイン
* 9876543210^0 ^To:\/<.*@プロバイダのドメイン>
* ? echo "$MATCH" | perl -pe 's/[<>[:space:]\r\n]//g' | egrep '@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン'
{
EXITCODE=67
:0
/dev/null
}
:0 H
* 9876543210^0 ^Cc:\/.*@プロバイダのドメイン
* 9876543210^0 ^Cc:\/<.*@プロバイダのドメイン>
* ? echo "$MATCH" | perl -pe 's/[<>[:space:]\r\n]//g' | egrep '@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン,.*@プロバイダのドメイン'
{
EXITCODE=67
:0
/dev/null
}
ウィルスをバラ撒きまくっている馬鹿の証拠収集。
エラーメールで返すと From 宛になるので特別なフォルダに入れて、正常終了。 |
:0 H
* ^Return-Path:.*\/.* * ? echo "$MATCH" | egrep ウィルス付メールを数ヶ月もバラ撒きまくってる馬鹿のメールアドレス
{
EXITCODE=0
:0
baka-error
}
| メッセージIDに、自宅サーバのドメインが含まれているにも拘らず、Return-Path が自宅サーバ以外の場合はスパムとみなすレシピ。 |
:0 H
* ^Message-Id:.*mutsuyoshi.net
{
:0 h
* ! ^Return-Path:.*mutsuyoshi.net.*
{
EXITCODE=67
:0
/dev/null
}
}
| Subject: に禁止ワードが含まれる場合は、スパムとみなす。 |
:0 H
* ^Subject:.*\/.*
{
DECWORD=$MATCH
:0 h
* ^Subject:.*
DECWORD=|echo "$MATCH" | nkf -me
:0 h
*$ ? test -s $NGWORD
* ? echo $DECWORD | procmail-sub -w $NGWORD
{
EXITCODE=67
:0
/dev/null
}
}
| 特定の拡張子が添付されているメールは、スパムとみなすレシピ(ウィルス対策) |
:0 B
* (filename|name)=.*\/.*
{
DECEXT=$MATCH
:0 b
* (filename|name)=.*
DECEXT=|echo "$MATCH" | nkf -me
:0 b
*$ ? test -s $NGEXT
* ? echo $DECEXT | procmail-sub -e $NGEXT
{
EXITCODE=67
:0
/dev/null
}
}
| 特定のアドレスから送付されているメールは、スパムとみなすレシピ |
#
BLACKLIST=$HOME/.blacklist
#
:0
* ? test -s $BLACKLIST
* ? (formail -x From: -x Reply-To: -x Sender: -x From: -x Return-Path: | fgrep -iqf $BLACKLIST)
{
EXITCODE=67
:0
/dev/null
}
| 特定のドメインから送付されているメールは、スパムとみなすレシピ |
:0 H
* ^From:.*colonize.com
* ^From:.*2mediaz.com
* ^From:.*kawaneba.net
* ^From:.*hosyou.net
* ^From:.*oshirase.biz
{
EXITCODE=67
:0
/dev/null
}
:0 H
* ^Return-Path:.*@kawaneba.net
{
EXITCODE=67
:0
/dev/null
}
| Base64でエンコードされたHTMLメールは、スパムとみなすレシピ(通常のメーラーはそんな手の込んだことしない) |
:0 H
* ^Content-Type:.*multipart/alternative
{
:0 b
* ^Content-Type:.*text/html
{
:0 b
* ^Content-Transfer-Encoding:.*base64
{
EXITCODE=67
:0
/dev/null
}
}
}
:0 H
* ^Content-Type:.*text/html
{
:0 h
* ^Content-Transfer-Encoding:.*base64
{
EXITCODE=67
:0
/dev/null
}
}
| 本文中にNGワードが含まれるテキストメールをスパムとみなすレシピ。行末や改行文字を取り除いて検査している。数値エンコードされた文字が10文字以上あるHTMLもスパムとみなす。 |
:0 cw
* < 20000
{
:0 bf
| sed 's/=$//g' | perl -pe 's/[[:cntrl:]]//g'
:0 B
* 9876543210^0 &#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;&#[0-9]*;
* 9876543210^0 blind date
(途中略)
* 9876543210^0 remove.html
{ EXITCODE=1 }
LOGFILE=/dev/null
HOST
}
:0 e
{
EXITCODE=67
:0
/dev/null
}
| 本文中にNGワードが含まれるHTMLメールをスパムとみなすレシピ。HTMLタグ行末や改行文字を取り除いて検査している。lynxの出力するリンク先のアドレスも設定すると吉 |
:0 cw
* < 20000
{
:0 bf
| sed -n '/<[hHBb][tTOo][mMDd][lLYy]/,$p' | sed 's/=$//g' | perl -pe 's/[[:cntrl:]]//g' | /lynx -stdin -dump -width=20000
:0 B
* 9876543210^0 A UNIVERSITY DEGREE CAN BE YOURS
(中略)
* 9876543210^0 penis
* 9876543210^0 (Get|Generic|Herbal) Viagra
{ EXITCODE=1 }
LOGFILE=/dev/null
HOST
}
:0 e
{
EXITCODE=67
:0
/dev/null
}
|