複数のメール (約 200 件) を印刷して、ページごとに 1 つずつ印刷するのではなく、継続して印刷する簡単な方法があるかどうかを知りたいです。私はサンダーバードとエボリューションを試しましたが、これは不可能のようです。個々のメール ファイルを連結することはできますか、それともこれを行うことができる他の UNIX ユーティリティはありますか? これにはsedまたはawkが適していますか?
4 に答える
メールのすべてのデータを 1 つのテキスト ファイルに入れて、それを印刷してみませんか。
これは、次のような方法で実行できます。
cat *.eml > file.txt
または直接印刷する
cat *.eml | lpr
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;
}
メールをフィルタリングしたい場合は、データが保存されている場所を見つけて、そのレベルでソリューションのスクリプトを作成することをお勧めします。
私のWindowsボックスでは、Thunderbirdは私の受信トレイをかなり大きなファイルに保存します。
C:\ Documents and Settings \ Bruce Axtens \ Application Data \ Thunderbird \ Profiles \ x5j9chtd.default \ Mail \ Local Folders \ Inbox
* n * xがあなたをどこに保存しているかわかりません:おそらくあなたのルートディレクトリの隠しフォルダにあります。例えば
/home/josh/.thunderbird
生の電子メールデータを解析することは、気の弱い人には向いていません(ただし、ウィキペディアには、正しい方向に進むための電子メールに関する優れた記事があります)。
私たちの残りの部分(私を含む)には、ソリューションを作成している間、ハック作業を行うためのスクリプトリソースがたくさんあります。これがPerlの開始に適した場所であることがわかった場合。他の人は他の言語のライブラリを提案できるかもしれません。
*n*x については確かに言えますが、テキストのみを出力し、テキスト ファイルに出力するプリンターを定義できる場合は、バッチをそのプリンターに印刷し、フォーム フィードを削除することができます。結果のテキスト ファイル。
Windows で同様の手法を使用しました。Generic / Text-Only ドライバーを使用して新しいプリンターを作成し、出力先をテキスト ファイルに指定します。次に、何でも印刷し、出力ファイルの場所を印刷ダイアログに指定し、印刷が完了したら結果をクリーンアップします。