MSG в Markdown: делаем тред Outlook читаемым для модели
Тред из сорока писем о продлении договора содержит всё решение целиком — кто что предложил, кто возражал, когда условия действительно поменялись. И он же почти нечитаем, потому что каждый ответ тащит в себе копию всего предыдущего, обёрнутую в маркеры цитирования, о которых три разных почтовых клиента не могут договориться. Вставьте это в окно чата — и получите стену серого текста, где один и тот же абзац встречается одиннадцать раз.
Конвертация MSG в Markdown — это придание этому месиву формы. Заголовки становятся
подписанным блоком наверху, так что «от кого», «кому», «копия», тема и дата отправки — однозначные факты,
а не то, что модель должна угадывать из контекста. Тело сохраняет свои абзацы и списки. Цитируемые ответы
остаются видимо вложенными, а не растворяются в окружающей прозе. В результате получается документ, в
котором на вопрос «кто что сказал и когда» можно ответить. Перетащите файл .msg в конвертер
выше — бесплатно, без регистрации, лимит 50 МБ.
Что такое файл .msg на самом деле
Большинство людей знакомится с .msg случайно. Кто-то перетаскивает письмо из Outlook на
рабочий стол и присылает вам получившийся файл, или использует «Файл > Сохранить как» и выбирает
«Outlook Message Format». В любом случае у вас на руках один файл с одним письмом.
Под капотом это не текст. .msg — составной бинарный файл, тот же контейнер структурированного
хранилища OLE, который Microsoft использовала для старых .doc и .xls:
миниатюрная файловая система с каталогами и потоками внутри одного файла. Каждая часть письма живёт в
своём потоке, названном по тегу свойства MAPI: тема в одном, тело в другом, каждый получатель в своём
нумерованном хранилище, каждое вложение — в отдельном. Откройте его в текстовом редакторе — получите
экран бинарного шума с несколькими узнаваемыми словами.
Открытый эквивалент — .eml: это просто сообщение по RFC 5322 — заголовки, пустая строка,
затем MIME-тело, — и его действительно можно читать в «Блокноте». Thunderbird, Apple Mail и большинство
экспортов из веб-почты порождают .eml. Outlook порождает .msg. Из-за этой
разницы столько людей и ищут, как открыть файл .msg без Outlook: с файлом всё в порядке,
у вас просто нет единственного приложения, для которого он родной. Конвертация — кратчайший путь его
прочитать, а бонусом вы получаете то, по чему можно искать и что можно вставлять.
Что конвертация выводит на поверхность
Проходят три слоя, и стоит понимать, где какой, прежде чем строить по ним промпты.
- Заголовки. Отправитель, получатели, копия, тема и дата отправки — оформлены
подписанным блоком, а не закопаны в прозе. Это та часть, где Markdown заметно лучше плоского текста:
модель, читающая
**From:** Priya Raman, понимает, что это метаданные, а не написанное кем-то предложение. - Тело. Само сообщение. Если отправитель писал в HTML — а это большая часть деловой почты, — заголовки, жирный, маркированные списки и гиперссылки отображаются в их Markdown-эквиваленты. Если писал обычным текстом, вы получаете абзацы как набраны — чище, но площе.
- Цитируемая цепочка. Всё, что ниже строки «On Tuesday, X wrote:». Она остаётся, с отступом и обособленно, потому что в переговорах цепочка часто важнее верхнего сообщения.
Файлы конвертируются и возвращаются, а не хранятся. Почта часто содержит личные или коммерчески чувствительные данные, так что применяйте правила вашей организации по обращению с перепиской, прежде чем загружать рабочие письма.
Проблема повторов в цепочке ответов
Вот особенность, на которой попадаются все, — и её стоит понять, а не обходить вслепую.
Ответы в почте кумулятивны. Двенадцатое сообщение треда содержит внутри себя сообщения с первого по одиннадцатое. Так что если вы выгрузили несколько писем одного разговора и конвертируете их все, вы конвертируете не двенадцать сообщений — вы конвертируете примерно семьдесят восемь их копий, потому что каждое тащит за собой предков. Первое письмо длинного треда может оказаться в вашем выводе дюжину раз.
Теперь добавьте блоки подписей. Каждое письмо повторяет имя отправителя, должность, телефон и адрес офиса. Добавьте корпоративный юридический дисклеймер — абзац «это письмо и все вложения конфиденциальны», — который многие организации автоматически прикрепляют к каждому исходящему сообщению, включая ответы. В длинном треде этот шаблонный текст может действительно перевесить содержание.
Два практических ответа. Первый: если вам нужна только полная история треда, сконвертируйте одно самое свежее письмо — оно уже содержит всё. Конвертация всей папки в основном покупает вам дублирование. Второй: проверьте счётчик токенов под результатом, прежде чем куда-то вставлять. Тред, выглядящий на экране как несколько страниц, с учётом повторов может оказаться поразительно дорогим, и увидеть цифру заранее лучше, чем узнать её из ошибки обрезания.
Где структура окупается
Markdown — правильный выбор всякий раз, когда вам важны авторство и последовательность, а с почтой это большая часть случаев:
- Восстановление хода решения. «Когда мы согласились на отсрочку платежа в 60 дней и кто это утвердил?» Модель ответит на это по структурированному треду с датированными заголовками. По уплощённой прозе она будет юлить — или, хуже, уверенно припишет реплику не тому человеку.
- Суммаризация переговоров. Позиции меняются со временем. Читаемые уровни цитирования позволяют модели видеть, что третий абзац девятого письма — цитата из четвёртого, а не новое заявление.
- Извлечение поручений. Маркированные списки выживают как списки, поэтому блок «следующие шаги», набранный кем-то в шестом письме, выходит списком, а не слитным предложением.
- Документы передачи дел. Сконвертируйте тред, положите Markdown рядом с заметками по проекту — и человек, принимающий дела через полгода, получит не только итог, но и ход рассуждений.
- Подготовка переписки к проверке. Юристам, HR и комплаенсу нужны отправитель, список получателей и метка времени с одного взгляда. Подписанный блок заголовков даёт им это без открытия почтового клиента.
Если ничего из этого не про вас — вы индексируете тысячи писем для поиска или векторизуете их, — разметка станет лишними накладными расходами, и лучше взять MSG в обычный текст. Переключатель формата в верхней части страницы меняет режим и переносит выбранный файл, так что сравнение стоит один клик, а не повторную загрузку.
Вложения — и как обработать целый тред разом
.msg может нести вложения внутри себя — отчасти для этого составной формат и существует. Из
конвертера выходит содержимое письма: заголовки, тело, цитируемая цепочка. Вложенный PDF договора или
таблица бюджета отдельно не извлекаются, так что если нужно и их содержимое, сохраните файл из письма и
сконвертируйте его отдельно. Это двухминутная работа:
PDF в Markdown для документов,
Word в Markdown для DOCX или
Excel в Markdown для
таблиц — там структура таблиц действительно выживает.
Встроенные изображения — смежная ловушка. Скриншоты, вставленные в тело письма, — это картинки, а OCR здесь нет, поэтому письмо, весь смысл которого был в скриншоте ошибки, сконвертируется почти в ничто. Ничего не сломалось — текста для извлечения там никогда и не было.
Если писем больше одного-двух — соберите их в пакет. Выделите файлы .msg, сожмите в один
архив и прогоните через
ZIP в Markdown — каждый
поддерживаемый файл внутри сконвертируется за одну загрузку. Это естественный ход, когда вы вытащили на
диск целую папку Outlook и хотите получить переписку одним читаемым документом.
Часто задаваемые вопросы
Как конвертировать файл Outlook .msg в Markdown?
Загрузите письмо выше — и оно вернётся в виде Markdown: заголовки подписанным блоком, тело ниже с форматированием, сохранённым там, где оно отображается. Бесплатно, до 50 МБ на файл, аккаунт не нужен, и Outlook для чтения файла устанавливать не требуется.
Почему для письма Markdown, а не обычный текст?
Потому что у письма есть части, и Markdown их не смешивает. Отправитель, получатели, тема и дата сидят в чётко отделённом блоке над телом, а не втекают в первый абзац. Цитируемые цепочки ответов остаются узнаваемыми цитатами. Для вставки письма в тикет или документ это разделение и есть вся ценность — иначе обычный текст проще.
Остаются ли цитируемые цепочки ответов читаемыми?
Обычно да. Длинный тред конвертируется во вложенные уровни блочных цитат, так что видно, какой ответ сидел внутри какого. Предел в том, что цепочки ответов форматирует тот клиент, который их писал, и стандарта нет — тред, трижды прошедший через Outlook, Gmail и телефонный клиент, сконвертируется во что-то структурно честное и визуально неопрятное.
HTML-письма конвертируются лучше, чем текстовые?
У них больше материала для работы. HTML-тело несёт настоящую разметку — заголовки, списки, ссылки, таблицы, — и она отображается в Markdown напрямую. У письма в обычном тексте есть только переводы строк и конвенции, так что вывод близок к исходному. Худший случай — маркетинговые письма, набитые таблицами вёрстки: они конвертируются во что-то, что не стоит читать.
Можно ли так архивировать письма в репозиторий или вики?
Это разумное применение — Markdown долговечен, поддаётся diff, grep и чтению без почтового клиента, чего не скажешь о папке файлов .msg. Сконвертируйте письма, закоммитьте вывод — и тред останется доступным для поиска и через десять лет. Вложения придётся сохранять отдельно.
Остальной инструментарий
MSG — один из форматов, которые обрабатывает File2Txt: он принимает любой поддерживаемый файл одной загрузкой, если не хочется выбирать страницу. Для веб-содержимого Web2Txt собирает URL в Markdown — полезно, когда тред постоянно ссылается на спецификацию, живущую онлайн. Со стороны кода можно сконвертировать репозиторий GitHub в текст или папку на своей машине, а затем отдать модели почтовый тред и реализацию вместе. Руководство по подготовке документов для LLM излагает общую аргументацию всего этого.
Repo2Txt создаёт и поддерживает v12hero — независимый разработчик, который делает нативные и веб-приложения с приоритетом приватности.