質問

複数の電子メール(約200件)を印刷する簡単な方法があるかどうかを知りたいので、1ページに1つずつ印刷するのではなく、続けて送信します。私はサンダーバードと進化を試みましたが、これは不可能のようです。個々のメールファイルを連結すると機能しますか、またはこれを行うことができる他のUNIXユーティリティはありますか? WOuld sedまたはawkはこれに適していますか?

役に立ちましたか?

解決

メールのすべてのデータを1つのテキストファイルに入れて印刷します。

これは次のような方法で実行できます。

cat *.eml > file.txt

または直接印刷

cat *.eml | lpr

他のヒント

Perlは、メールを使用して、非常に簡単にします。 :: 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;
}

* n * xについては確かに言えますが、テキストのみを出力し、テキストファイルに出力するプリンターを定義できる場合は、そのプリンターにバッチを印刷してフォームを削除できます-結果のテキストファイルからのフィード。

Windowsで同様の手法を使用しました。Generic/ Text-Onlyドライバーを使用して新しいプリンターを作成し、出力がテキストファイルであることを指定します。その後、何でも印刷し、出力ファイルの場所を印刷ダイアログに指定し、印刷が完了したら結果をクリーンアップします。

メールをフィルタリングする場合は、データの保存場所を見つけて、そのレベルでソリューションをスクリプト化することをお勧めします。

Windowsボックスでは、Thunderbirdは受信ボックスをかなり大きなファイルに保存します

  

C:\ Documents and Settings \ Bruce Axtens \ Application Data \ Thunderbird \ Profiles \ x5j9chtd.default \ Mail \ Local Folders \ Inbox

* n * xがあなたのものをどこに保存するかわかりません:おそらくあなたのルートディレクトリの隠しフォルダの中に。例:

  

/home/josh/.thunderbird

生の電子メールデータの解析は気弱な人向けではありません( Wikipedia には良い記事がありますが正しい方向で始めるための電子メールで。)

他の人(私も含む)には、ソリューションの作成中に、ハッキング作業を行うためのスクリプトリソースがたくさんあります。 Perlの開始に適した場所として this が見つかった場合。他の人は他の言語のライブラリを提案できるかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top