LINUX.ORG.RU
ФорумAdmin

Нестандартный вопрос по почте, может кто сообразит как это сделать


0

0

Есть почтовый файл в формате, в котором пишется почта в файлы /var/spool/mail/USER. Файл очень большой - несколько тысяч писем. Нужно разделить этот файл, с полным сохранением формата на отдельные письма. Т.е., из 1 файла с тысячей писем получить тысячу файлов с отдельными письмами. Единственное решение, которое я нашел - подсунуть этот файл в evolution и сохранять из него по одному письму вручную, давая файлам разные имена. Но это очень медленно получается.
Может ли кто-то предложить способ более быстрого решения задачи?

Буду благодарен за любые советы.

anonymous

Взять что-то за признак начала письма (или окончания) и в perl/python/awk разбирвать его. +Еслть различные бибилиотеки для скриптовых языков для работы с mailbox

anonymous
()

Поднять почт. сервер, который почту в maildir формате хранит и слить
на него почтовый ящик.

Sun-ch
()

Письма в mailbox формате, как мне известно, разделяются пустой строкой.
Каждое новое письмо начинается со слова "From" без двоеточия.
Пример скрипта:
---- начало
#!/usr/bin/perl

if ($ARGV[0] eq "") { print "Хочу параметр\n";exit 1 }

$before="xz";$n=1;
open(IN,"<$ARGV[0]");open(OUT,">$n");
while(<IN>)
{
    if (/^From / && $before eq "\n") { close(OUT);$n++;open(OUT,">$n"); }
    print(OUT $_);$before=$_;
}
close(IN);close(OUT);
---- конец
Скрипт создает в текущем каталоге кучу файлов с именами 1,2,3,... по одному письму в каждом. В качестве параметра передается путь к исходному mailbox-у (/var/spool/mail/USER).

spirit ★★★★★
()

Отдать procmail/formail.

Zulu ★★☆☆
()

Самый простой способ, но он требует наличия винды и TheBat. Загружаешь ящик в TheBat, там выделяешь все письма->tools->export>*.msg получаться обычные текстовые файлики.

inik ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.