所以今天早上我接到一个电话,询问客户是否需要查看他们在我们的辅助邮件服务器上等待发送的电子邮件.他们的主服务器的链接已经(仍然)已经停止了两天,他们需要看到他们的电子邮件.
所以我编写了一个快速的Perl脚本,将mailq与postcat结合使用,将每个电子邮件的地址转储到单独的文件中,然后将其发送出去并将其发送出去.可怕的代码,我知道,但这很紧急.
我的解决方案工作正常,因为它至少提供了一个原始视图,但我想今晚如果我有一个解决方案可以提供他们的电子邮件附件并且可能删除一些“垃圾”标题文本也会很好.大多数重要的电子邮件似乎都附有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\"`; }
任何建议表示赞赏
解决方法
您可以在这里找到
Postfix::Parse::Mailq模块以及
pfcat脚本.