今天一大早,我接到一个电话,说一个客户需要查看他们在我们的辅助邮件服务器上有哪些电子邮件在等待发送。他们到主服务器的链接已经(仍然是)关闭了两天,他们需要查看他们的电子邮件。
因此,我编写了一个快速的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\"`;
}任何建议都很感谢。
发布于 2010-05-01 02:05:33
您可以在这里找到使用的Postfix::Parse::Mailq模块,以及pfcat脚本。
https://stackoverflow.com/questions/2743717
复制相似问题