2008-11-19 108 views
1

我想知道是否有任何簡單的方法來打印多個電子郵件(約200),以便他們繼續,而不是每頁打印一個。我嘗試過使用雷鳥和進化,這似乎不可能。將單個郵件文件連接起來,還是有其他的Unix工具可以做到這一點? WOuld sed或awk適合這個嗎?連接許多電子郵件文件與UNIX應用程序

+0

推薦閱讀:[GNU的coreutils手冊](http://www.gnu.org/software/coreutils/manual/coreutils.html) – Svante 2008-11-19 13:15:52

回答

3

爲什麼不把郵件中的所有數據都放在一個文本文件中並打印出來。

這可以通過像這樣做:

​​

或者直接用

cat *.eml | lpr 
+0

是的,這是簡單的。 – Svante 2008-11-19 13:09:10

+0

但是,這將打印標題和完整信息 – 2008-11-20 12:49:20

+1

沒問題。您需要過濾不希望顯示的行。 – boutta 2008-11-21 13:31:58

0

我可以肯定地說有關* N * X打印出來,但如果它是可以定義打印機只輸出文本,並將輸出到文本文件,然後您可以打印您的批處理到該打印機並從生成的文本文件中刪除窗體飼料。

我在Windows中使用了類似的技術:使用Generic/Text-Only驅動程序創建一個新的打印機,並指定輸出到一個文本文件。然後打印任何內容,將輸出文件的位置指定給打印對話框,然後在打印完成後清理結果。

0

如果您想要過濾電子郵件,那麼我建議您找到數據的存儲位置並在該級別編寫解決方案。

在我的Windows中,雷鳥商店我的一個相當大的十歲上下的文件收件箱在

C:\ Documents和Settings \布魯斯Axtens \應用數據\雷鳥\ Profiles文件\ x5j9chtd.default \郵件\本地文件夾\收件箱

我不知道* n * x存儲在您的位置:可能位於根目錄中的隱藏文件夾中。例如。

/home/josh/.thunderbird

解析原始電子郵件數據不是一件輕鬆的事情(儘管Wikipedia對電子郵件這將讓你在正確的方向開始的好文章。)

對於我們其他人(包括我在內),在製作解決方案時,有很多腳本資源可以幫助您完成黑客工作。如果發現this是開始Perl的好地方。其他人可能會建議其他語言的圖書館。

1

Perl使Email::Abstract模塊變得非常簡單。給以下腳本(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; 
} 
相關問題