объединение множества файлов электронной почты с помощью утилит Unix

StackOverflow https://stackoverflow.com/questions/301776

  •  08-07-2019
  •  | 
  •  

Вопрос

Я хотел бы знать, есть ли какой-нибудь простой способ распечатать несколько писем (около 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.Другие могут предложить библиотеки для других языков.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top