mailman の Domain not found スクリプトより
## Domain not found のエラーから、該当するメールアドレスとメーリングリスト名を抽出 open(SMTPERR, "< $errlog") || die "Error: $errlog \n"; while() { chomp; if ( $_ =~ /$taisho/ && $_ =~ /Domain not found/ && $_ =~ /refused/ ) { @array = split( / +/, $_); # 該当メールアドレスの抽出 $array[11] =~ s/://g; if ( $array[11] !~ /^[^@]+@[^.]+\..+/ ) { print "$array[11] は、メールアドレスではありません。作業を中止します。\n"; exit(1); } else { # メーリングリストの抽出 $array[19] =~ s///g; @ml_tmp = split(/\./, $array[19]); $ml_tmp[4] =~ s/\@cc//g; if ( $ml_tmp[4] !~ /^[a-z][a-z|0-9]*\-[a-z|0-9]+/ || $ml_tmp[4] !~ /mailman/ ) { print "$ml_tmp[4] は、正しいメーリングリスト名ではありません。作業を中止します。\n"; exit(1); } else { ## $dnfml[数][0] が、メールアドレス、$dnfml[数][0] が、ML名 @dnfml = ( [ "$array[11]", "$ml_tmp[4]" ] ); } } } } close(SMTPERR); foreach(@errlogdata) { if( $_ =~ /$taisho/ && $_ =~ /$eaddr/ && $_ =~ /refused/ && $_ =~ /Domain not found/ ) { @array = split(/ +/, $_); # メーリングリストの抽出 $array[19] =~ s///g; @ml_tmp = split(/\./, $array[19]); $ml_tmp[4] =~ s/\@cc//g; if ( $ml_tmp[4] !~ /^[a-z][a-z|0-9]*\-[a-z|0-9]+/ ) { print "$ml_tmp[4] は、正しいメーリングリスト名ではありません。作業を中止します。\n"; exit(1); } else { $ml_pre = $ml_tmp[4]; } } } ### 多次元配列用uniq処理 ### @hoge[i] までが配列名なので、
途中か?
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。