#!/usr/bin/perl -- # # Tue,02 Dec,2003 - Tue,06 Jan,2004 # Fri,11 Jun,2004 # Mon,20 Dec,2004 # Copyright(C)2004 G-HAL # # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # 使用法: # # - 本スクリプトを /usr/local/libexec/tofilter に EUC で保存し、 # 実行権限を付ける。 # # - .mc ファイルに以下の定義を追加し sendmail.cf を再作成する。 # # dnl # dnl To: 判定による拒絶 # dnl これを有効にすると、To: が 255 文字を越えた際に、 # dnl バッファオーバーフローでそれ以降が切り捨てられる。 # dnl bracket の途中で切り捨てられた場合、 # dnl エラーとして、メールを Reject してしまう。 # dnl # LOCAL_CONFIG # Ktosign program /usr/local/libexec/tofilter # # LOCAL_RULESETS # HTo: $>+CheckTo # # SCheckTo # R$* $: $(tosign $1 $) # dnl R@MATCH $#error $@ 5.1.1 $: "550 User unknown" # R@MATCH $#discard $: discard # # 参考: # sendmail による「!広告!」フィルタ # http://www.imasy.or.jp/~ume/adfilter/ # スクリプティング言語資料室(仮) # http://www.kt.rim.or.jp/~kbk/perl5.005/perlre.html # use strict; my $str = $ARGV[0]; if( $str =~ /\b(adm|uucp)\@hogehoge\.jp\b/i ){ $str = '@MATCH'; } print "$str"; exit 0; __END__ # [ EOF ]