8

所以今天早上我接到一个电话,说一个客户需要查看他们在我们的辅助邮件服务器中等待发送的电子邮件。他们的主服务器链接已经(仍然)关闭了两天,他们需要查看他们的电子邮件。

因此,我编写了一个快速的 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\"`;
}

任何建议表示赞赏。

4

1 回答 1

2

您可以在此处找到使用的Postfix::Parse::Mailq模块以及pfcat脚本。

于 2010-04-30T18:05:32.723 回答