1

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

4

4 に答える 4

3

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

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

cat *.eml > file.txt

または直接印刷する

cat *.eml | lpr
于 2008-11-19T12:50:38.470 に答える
1

Perl では、 Email::Abstractモジュールを使用すると非常に簡単になります。次のスクリプト (maildump) にダンプする電子メールのリストを指定し、それをすべて lpr... にパイプします。

メールダンプ 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;
}
于 2008-11-25T15:30:02.483 に答える
0

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

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

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

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

/home/josh/.thunderbird

生の電子メールデータを解析することは、気の弱い人には向いていません(ただし、ウィキペディアには、正しい方向に進むための電子メールに関する優れた記事があります)。

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

于 2008-11-22T12:56:49.487 に答える
0

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

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

于 2008-11-19T12:51:09.903 に答える