因此,今天早上我接到一个电话,询问客户是否需要查看他们等待在我们的辅助邮件服务器上发送的电子邮件。他们对主服务器的链接已经(仍然)已经停止了两天,他们需要查看他们的电子邮件。
所以我编写了一个快速的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\"`;
}
任何建议表示赞赏。