具体的には,epmail に来たメールの内,To: postmaster あるいは To: epmail が合計2行以上あるメールを撃墜する.
止めるべきメールを受け取った場合,/home/epmail/bin/stopwepmail.pl は
/var/log/syslog に一行書き込み,/home/epmail/stopped-mail に止めた
メールを残して終了コード 99 で終了する.
ローカル配送を行う qmail-local は,終了コード 99 を,
「配送は成功したが、 qmail-local は以降の配送命令を無視せよ」
という意味に取るので,/home/epmail/.qmail の 2 行目以降の
配送指示は実行されなくなる.
参考: http://man.qmail.jp/jman8/qmail-command.html
/home/epmail/.qmail:| /home/epmail/bin/stopwepmail.pl &epmail-member/home/epmail/bin/stopwepmail.pl:
#!/usr/bin/perl # stopwepmail.pl # Kyoma TAKAHASHI 1999/10/29 # Thanks for Okuyama's help $cnt = 0; $mailhb = ''; while () { if (/^To:\s+epmail.+/) { $cnt += 1 } if (/^To:\s+postmaster.+/) { $cnt += 1 } $mailhb .= $_; } if ( $cnt < 2 ) { print $mailhb; exit 0; } else { $from = $ENV{'SENDER'}; $to = $ENV{'RECIPIENT'}; $ermsg = 'Message from '.$from.' to '.$to.' is going to start chain reaction!! Stopped it.'; system "/usr/bin/logger -t stopwepmail.pl '$ermsg'"; open (STOPMAIL,">> /home/epmail/stopped-mail"); print STOPMAIL $mailhb; close (STOPMAIL); exit 99; }
最終更新日: | 2002/05/11 (島沢竜平) |