Как преобразовать несколько файлов eml в один файл mbox?

Подобные вопросы задавались 5 лет назад и раньше, ответы на которые сейчас устарели. Кроме того, я не хочу использовать онлайн-сервис.

Я хочу преобразовать тысячи файлов eml в один файл mbox.

Кто-нибудь здесь знает, можно ли это сделать и как?

Спасибо.

1 ответ

TLDR

Формат этого преобразования не так уж сложен, и файл MBOX должен автоматически генерироваться из любого количества файлов EML с помощью такого цикла оболочки ( перед его запуском убедитесь, что в том же каталоге не существует файла с указанным именем):

      for e in *.eml
  do
    date +"From - %a %b %d %H:%M:%S %Y" >> file.mbox
    cat "$e" >> file.mbox
    echo >> file.mbox
    done

... что при запуске из каталога, содержащего*.emlфайлы, в конце должен создать файл с именемfile.mboxв том же каталоге.

ТЛР :)

Вся важная информация, то есть заголовки и тело сообщения, должна содержаться в каждом файле EML. .emlследуя стандарту EML , определенному с 1982 года, на основе которого большинство почтовых клиентов основывают свой анализ/обработку файлов сообщений электронной почты и который в большинстве случаев должен сохранять целостность как заголовков, содержащих, среди прочего, электронное письмо отправителя и временные метки, так и тела сообщения. .

С другой стороны, формат файла MBOX не был стандартизирован более чем два десятилетия спустя... По своей сути это своего рода единый контейнер для нескольких сообщений электронной почты (который должен соответствовать стандартизированному формату EML).

Однако текущий « стандартформата файла MBOX» ( по состоянию на 2005 год) выглядит следующим образом:

Во-первых, этоF,r,oиmза которым следует один пробел, затем какой-то адрес электронной почты, а затем еще один одиночный пробел, за которым следует отметка времени, за которым следует индикатор конца строки, и сразу на следующей строке (пустая строка не ожидается), должно начаться сообщение, а затем он должен заканчиваться пустой строкой (без пробелов и табуляции, просто пустая строка)... Затем этот формат повторяется по всему файлу MBOX, и почтовые клиенты должны анализировать файл до тех пор, пока не закончатся данные или не закончится файл. файл достигнут.

Я помню, что давным-давно мне пришлось столкнуться с такой проблемой, и, если я правильно помню,Fromстрока, которую я использовал в сгенерированном файле MBOX, выглядела так:

      From - Tue Nov 21 17:30:08 2023

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

Другие вопросы по тегам