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 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。