我想知道是否有任何简单的方法可以打印多封电子邮件(约200张),以便继续打印,而不是每页打印一封。我试过雷鸟和进化,这似乎不可能。将各个邮件文件连接起作用还是有其他unix实用程序可以执行此操作? WOuld sed或awk是否适合这个?
答案 0 :(得分:3)
为什么不将邮件中的所有数据都放在一个文本文件中并打印出来。
这可以通过以下方式完成:
cat *.eml > file.txt
或者直接用
打印cat *.eml | lpr
答案 1 :(得分:1)
使用Email::Abstract模块,Perl变得非常简单。给下面的脚本(maildump)一个要转储的电子邮件列表,然后将它们全部导入lpr ......
maildump m1 m2 m3 m4 | LPR
#!/usr/bin/perl
use Email::Abstract;
while ($mfile = shift @ARGV)
{
open(DATA, "<$mfile") || die "unable to open $mfile";
my $message = do { local $/; <DATA>; };
my $email = Email::Abstract->new($message);
my $subject = $email->get_header("Subject");
my $from = $email->get_header("From");
my $date = $email->get_header("Date");
my $body = $email->get_body;
print "SUBJECT: $subject\nFROM: $from\nDATE: $date\n\n$body\n\n";
print "-" x 65, "\n" if $#ARGV > 0;
}
答案 2 :(得分:0)
我可以肯定地说* n * x,但是如果可以定义只输出文本的打印机,并且输出到文本文件,那么你可以打印批次到该打印机并删除表格 - 从生成的文本文件中提供。
我在Windows中使用了类似的技术:使用Generic / Text-Only驱动程序创建一个新打印机,并指定输出是一个文本文件。然后打印任何内容,将输出文件的位置提供给打印对话框,然后在打印完成后清理结果。
答案 3 :(得分:0)
如果您想过滤电子邮件,我建议您查找数据的存储位置,并在该级别编写解决方案脚本。
在我的Windows框中,Thunderbird将我的收件箱存储在
中的一个相当大的文件中C:\ Documents and Settings \ Bruce Axtens \ Application Data \ Thunderbird \ Profiles \ x5j9chtd.default \ Mail \ Local Folders \ Inbox
我不知道* n * x存储在哪里:可能在根目录中的隐藏文件夹中。 E.g。
/home/josh/.thunderbird
解析原始电子邮件数据不适合胆小的人(尽管Wikipedia有一篇关于电子邮件的好文章,可以帮助您从正确的方向开始。)
对于我们其他人(包括我),在您制定解决方案时,有许多脚本资源可以帮助您完成黑客工作。如果发现this是开始Perl的好地方。其他人可能会建议其他语言的库。