8

そのため、今朝早く、クライアントから、セカンダリ メール サーバーに置かれている配信待ちのメールを確認する必要があるという電話がありました。メイン サーバーへのリンクが 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\"`;
}

アドバイスをいただければ幸いです。

4

1 に答える 1

2

Postfix::Parse::Mailqモジュールとpfcatスクリプトがここにあります。

于 2010-04-30T18:05:32.723 に答える