объединение множества файлов электронной почты с помощью утилит Unix
Вопрос
Я хотел бы знать, есть ли какой-нибудь простой способ распечатать несколько писем (около 200), чтобы они продолжались, а не печатать по одному на странице.Я пробовал использовать Thunderbird и Evolution, но это кажется невозможным.Будет ли работать объединение отдельных почтовых файлов или есть другие утилиты Unix, которые могут это сделать?Подойдет ли для этого sed или awk?
Решение
Почему бы вам не поместить все данные из писем в один текстовый файл и распечатать его?
Это может быть сделано чем-то вроде:
cat *.eml > file.txt
Или распечатайте его напрямую с помощью
cat *.eml | lpr
Другие советы
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;
}
Я могу с уверенностью сказать о * n * x, но если возможно определить принтер, который выводит только текст и который будет выводить текстовый файл, тогда вы можете распечатать партию на этом принтере и удалить форму -подается из полученного текстового файла.
Я использовал аналогичную технику в Windows: создайте новый принтер с помощью драйвера Generic / Text-Only и укажите, что выводом является текстовый файл. Затем напечатайте что угодно, укажите местоположение выходного файла в диалоговом окне печати, а затем очистите результат, когда печать будет завершена.
Если вы хотите фильтровать электронную почту, я предлагаю найти, где хранятся данные, и написать сценарий решения на этом уровне.
В моем ящике Windows Thunderbird хранит папку «Входящие» в довольно большом файле по адресу
C:\Documents and Settings\Bruce Axtens\Application Data hunderbird\Profiles\x5j9chtd.default\Mail\Local Folders\Inbox
Я не знаю, где *n*x хранит ваши:возможно, в скрытой папке вашего корневого каталога.Например.
/home/Джош/.thunderbird
Анализ необработанных данных электронной почты — занятие не для слабонервных (хотя Википедия есть хорошая статья об электронной почте, которая поможет вам начать работу в правильном направлении.)
Для остальных из нас (включая меня) существует множество ресурсов по написанию сценариев, которые помогут вам поработать за вас, пока вы разрабатываете свое решение.Если найден этот как хорошее место для начала работы с Perl.Другие могут предложить библиотеки для других языков.