臨界に突入するメールを止める


臨界に突入するメールを止める

具体的には,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 (島沢竜平)