объединение многих файлов электронной почты с помощью утилит Unix - PullRequest
1 голос
/ 19 ноября 2008

Я хотел бы знать, есть ли какой-нибудь простой способ напечатать несколько электронных писем (около 200), чтобы они продолжались, а не печатали по одному на страницу. Я пытался с Thunderbird и эволюцией, и это не представляется возможным. Будет ли работать объединение отдельных почтовых файлов или есть другие утилиты Unix, которые могут это сделать? Для этого подойдет sed или awk?

Ответы [ 4 ]

3 голосов
/ 19 ноября 2008

Почему бы вам не поместить все данные из писем в один текстовый файл и распечатать его.

Это может быть сделано чем-то вроде:

cat *.eml > file.txt

Или распечатайте его напрямую с

cat *.eml | lpr
1 голос
/ 25 ноября 2008

Perl облегчает работу с модулем Email :: Abstract . Дайте следующему сценарию (maildump) список электронных писем, которые нужно выгрузить, а затем направьте все это в lpr ...

maildump m1 m2 m3 m4 | LPR

#!/usr/bin/perl

use Email::Abstract;

while ($mfile = shift @ARGV)
{
    open(DATA, "&lt$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 &gt 0;
}
0 голосов
/ 22 ноября 2008

Если вы хотите фильтровать электронную почту, я предлагаю найти, где хранятся данные, и составить сценарий решения на этом уровне.

На моем Windows-устройстве Thunderbird хранит папку «Входящие» в довольно крупном файле в

C: \ Documents and Settings \ Брюс Аксенс \ Данные приложения \ Thunderbird \ Profiles \ x5j9chtd.default \ Mail \ Локальные папки \ Inbox

Я не знаю, где * n * x хранит ваше: возможно, в скрытой папке в вашем корневом каталоге. Э.Г.

/ дом / Josh / .thunderbird

Анализ необработанных данных электронной почты не для слабонервных (хотя Википедия имеет хорошую статью по электронной почте, которая поможет вам начать работу в правильном направлении.)

Для остальных из нас (включая меня) существует множество скриптовых ресурсов, которые помогут вам взломать работу, пока вы создаете свое решение. Если найдено , это как хорошее место для начала Perl. Другие могут предложить библиотеки для других языков.

0 голосов
/ 19 ноября 2008

Я могу точно сказать о * n * x, но если возможно определить принтер, который выводит только текст, и который будет выводить в текстовый файл, тогда вы можете распечатать партию на этом принтере и удалить форму -подается из полученного текстового файла.

Я использовал аналогичную технику в Windows: создайте новый принтер с помощью драйвера Generic / Text-Only и укажите, что выводом является текстовый файл. Затем напечатайте что угодно, укажите местоположение выходного файла в диалоговом окне печати, а затем очистите результат, когда печать будет завершена.

...