そのため、今朝早く、クライアントから、セカンダリ メール サーバーに置かれている配信待ちのメールを確認する必要があるという電話がありました。メイン サーバーへのリンクが 2 日間ダウンしており、メールを確認する必要がありました。
そこで私は簡単な Perl スクリプトを作成して、mailq と postcat を組み合わせて使用し、各メールアドレスのアドレスを個別のファイルにダンプし、tar して送信しました。恐ろしいコードだと思いますが、緊急でした。
私のソリューションは、少なくとも生のビューを提供するという点で問題なく機能しますが、今夜、電子メールの添付ファイルを提供し、「ガベージ」ヘッダー テキストも削除できるソリューションがあればいいと思いました。重要な電子メールのほとんどには、PDF などのファイルが添付されているようです。
私は周りを見回してきましたが、私が見ることができるキューファイルを表示する唯一の方法はpostcatコマンドであり、私は本当に自分のパーサーを書きたくありません.使用するより良いコマンドの?
私の現在のソリューションのコードは次のとおりです。
#!/usr/bin/perl
$qCmd="mailq | grep -B 2 \"someemailaddress@isp\" | cut -d \" \" -f 1";
@data = split(/\n/, `$qCmd`);
$i = 0;
foreach $line (@data)
{
$i++;
$remainder = $i % 2;
if ($remainder == 0)
{
next;
}
if ($line =~ /\(/ || $line =~ /\n/ || $line eq "")
{
next;
}
print "Processing: " . $line . "\n";
`postcat -q $line > $line.email.txt`;
$subject=`cat $line.email.txt | grep "Subject:"`;
#print "SUB" . $subject;
#`cat $line.email.txt > \"$subject.$line.email.txt\"`;
}
アドバイスをいただければ幸いです。