Outlook MSG в текст: прочитать, проиндексировать, найти
Кто-то пересылает вам файл с именем RE_ Invoice query.msg. Вы делаете двойной клик, машина
предлагает открыть его в текстовом редакторе — и выдаёт экран бинарного мусора с редкими читаемыми
словами. Outlook у вас нет. Вы просто хотите узнать, что написано в письме.
Это самая короткая причина конвертировать Outlook MSG в текст онлайн: это быстрейший способ открыть файл .msg без Outlook и наконец его прочитать. Причина подлиннее — плоский текст является форматом, которого хотят все поисковые индексы, модели эмбеддингов и классификаторы, так что если вы разбираете выгрузку почтового ящика, а не одно письмо, начинать нужно отсюда. Бесплатно, без регистрации, до 50 МБ на файл, и у нас ничего не сохраняется.
Почему файл не открывается
.msg — собственный формат Outlook для одного письма, и это не текст. Это составной бинарный
файл — контейнер с внутренним деревом каталогов, где тема, тело, каждый получатель и каждое вложение лежат
в отдельных именованных потоках, помеченных идентификаторами свойств MAPI. Из-за этой структуры текстовый
редактор и показывает шум: вы смотрите на сырые байты маленькой файловой системы, а не на письмо.
Открытая альтернатива — .eml, определённый в RFC 5322: он действительно является обычным
текстом — заголовки, пустая строка, MIME-тело — и его покажет любой редактор. Thunderbird, Apple Mail и
большинство экспортов из веб-почты отдают именно его. Outlook отдаёт .msg — его вы получаете,
когда кто-то перетаскивает письмо из ящика на рабочий стол или использует «Файл > Сохранить как» с
выбранным «Outlook Message Format». С файлом всё в порядке. Вам просто не хватает единственной программы,
которая читает его нативно, а конвертация обходит это целиком.
В чём плоский текст объективно лучше
Это не «Markdown с убранным форматированием». Текст — правильный выход для конкретного и довольно большого набора задач, и в большинстве из них структурная разметка — обуза, а не потеря:
- Поисковая индексация. Elasticsearch, SQLite FTS,
tsvectorв Postgres — все они хотят сырой текст в колонке. Скормите им Markdown — и вы добавили себе проход санации плюс стеммер, которому теперь нужно решать, что делать с приблудными чертами и звёздочками. - Поиск по ключевым словам и e-discovery. Сконвертируйте папку переписки, а потом
прогоните по ней
grepв поисках имени поставщика, определённого договорного термина или фразы, которой там быть не должно. Офлайн, мгновенно, и проверить может любой, у кого есть шелл. - Эмбеддинги. Порезать, векторизовать, искать по близости. Символы форматирования не несут смысла, но всё равно занимают позиции в векторе — они разбавляют. Чанки из чистой прозы ищутся лучше.
- Классификация и тональность. Маршрутизация писем поддержки по темам, оценка ответов
клиентов на раздражение, разметка квартальной переписки по темам. Подходы на мешке слов и TF-IDF с
радостью посчитают
###токеном, если его не вычистить, — так не создавайте его. - Экономия токенов на объёме. Для одного письма разметка не стоит ничего, о чём стоило бы говорить. Для четырёх тысяч каждый лишний символ умножается на четыре тысячи. Текст — это нижняя планка.
Когда вы читаете один тред, а не обрабатываете множество — восстанавливаете, кто на что согласился и когда, — подписанные заголовки и видимые уровни цитирования в MSG в Markdown стоят дополнительных символов. Переключатель формата в верхней части страницы меняет режим и сохраняет уже выбранный файл.
Как разобрать выгрузку почтового ящика
Никто не конвертирует один .msg ради поискового корпуса. Обычная форма этой работы —
несколько сотен писем, перетащенных из Outlook в папку, и вот тут важна пакетность: соберите их в один
архив и запустите
ZIP в текст — и каждый
поддерживаемый файл внутри сконвертируется за одну загрузку вместо нескольких сотен.
Почта часто содержит личные или коммерчески чувствительные данные, так что сверьтесь с правилами вашей организации по обращению с перепиской, прежде чем загружать рабочие письма. Файлы конвертируются и возвращаются, а не хранятся.
Второе, что нужно закладывать в план, — дублирование, и это крупнейший источник раздувания почтового корпуса. Ответы кумулятивны: двенадцатое письмо содержит внутри себя процитированные письма с первого по одиннадцатое. Сконвертируйте целый тред — и первое письмо появится в вашем выводе дюжину раз. Добавьте блок подписи — имя, должность, телефон, адрес офиса, — повторяющийся в каждом письме, плюс автоматический юридический дисклеймер, который многие компании прикрепляют к каждому исходящему ответу, — и шаблонный текст может перевесить суть.
Для поиска и эмбеддингов такое повторение прямо вредно: один и тот же пассаж индексируется дюжину раз и перекашивает оценки выдачи. Два исправления, которые стоят усилий: оставляйте только новейшее письмо каждого треда, когда нужна история, и напишите один regex, отрезающий всё начиная с первого цитатного заголовка «From:» или первой строки дисклеймера. Счётчик токенов под результатом покажет, сколько вы сэкономили.
Артефакты, которые вы увидите в выводе
- HTML-тела уплощаются жёстко. Большая часть деловой почты отправляется как HTML. Жирный, маркированные списки, цветные статусные таблицы в отчётах по проекту — всё становится неоформленной прозой. Обычно это нормально. Если смысл письма жил в таблице, числа выживут, а колонки, к которым они относились, — нет.
- Маркеры цитирования непоследовательны. Outlook пишет блок «From/Sent/To/Subject» над
цитируемым текстом. Gmail пишет «On [date], [name] wrote:». Старые клиенты используют префиксы
>. Тред, прошедший через несколько организаций, будет содержать все три конвенции — а это важно, если вы пишете regex для разделения писем. - Временные метки читаются по времени отправки, не по вашему часовому поясу. Отсортируйте сконвертированный набор хронологически и проверьте смещения, прежде чем доверять порядку между регионами.
- Вложения не извлекаются.
.msgих хранит, но конвертация отдаёт содержимое письма. Сохраните вложение отдельно и прогоните его через PDF в текст или Word в текст, если нужно то, что внутри. - Вставленные скриншоты не проходят. Изображения в теле письма не читаются, поэтому письмо, всё содержимое которого было картинкой с диалогом ошибки, конвертируется почти в ничто. Сохраните картинку отдельно и прогоните через изображение в текст — вот он распознаёт текст в файле изображения.
Задачи, которые это решает
- Прочитать присланное письмо. Самый простой случай — и самый частый. Вам нужны слова, у вас нет почтового клиента, открывающего формат, и через десять секунд всё готово.
- Собрать поисковый архив. Годы проектной переписки — в папку текстовых файлов,
доступных для
grep,ripgrepили настольного поискового индекса: не нужно монтировать PST и не нужен почтовый клиент. - Ревизия и раскрытие документов. Прочешите набор на определённые термины, получите список совпадений и отдайте проверяющим то, что они смогут читать без лицензии Outlook на каждого в команде.
- RAG по переписке. Векторизуйте историю писем клиента, чтобы ассистент поддержки знал, что уже было обещано, а не противоречил коллеге четырёхмесячной давности.
- Классификация на объёме. Прогоните модели тональности или тем по кварталу входящей почты, чтобы найти, где кучкуются эскалации.
- Дать ассистенту предысторию. Когда модели нужно знать, о чём договорились, прежде чем она набросает ответ, тред в виде текста — самый дешёвый способ ей это дать.
Часто задаваемые вопросы
Как открыть файл .msg без Outlook?
Загрузите его сюда. MSG-контейнер разбирается, и письмо возвращается читаемым обычным текстом — отправитель, получатели, тема, дата и тело — без Outlook, без плагинов и без установки чего-либо. Бесплатно, без регистрации, до 50 МБ на файл, у нас ничего не сохраняется.
Почему файл .msg выглядит в текстовом редакторе бинарным мусором?
Потому что это составной бинарный файл, а не текстовый. Outlook хранит письмо как контейнер с внутренним деревом каталогов, где тема, тело, каждый получатель и каждое вложение лежат в отдельных именованных потоках, помеченных идентификаторами свойств MAPI. Открыв его как текст, вы видите сырые байты контейнера с редкими читаемыми словами.
Извлекаются ли вложения?
Нет — на выходе само письмо: заголовки и тело. Вложения остаются внутри файла. Если нужно и содержимое вложенного документа, сначала сохраните его из письма и сконвертируйте на странице его формата, либо соберите несколько писем в ZIP и используйте ZIP в текст.
Можно ли сконвертировать выгрузку целого ящика?
Не одной загрузкой — сюда принимается один .msg. Для папки таких файлов запакуйте её и сконвертируйте архив: он проходит каждое письмо за один проход. Это обычный маршрут для discovery-работы, восстановления тредов или построения поискового индекса по выгрузке ящика.
Насколько конфиденциально содержимое писем?
Файл обрабатывается и отбрасывается — не хранится, не логируется и не индексируется, и к нему не привязан никакой аккаунт. Тем не менее, если письма по-настоящему чувствительные, консервативный вариант — конвертер локальной папки, который читает файлы в браузере без этапа загрузки.
Остальной инструментарий
MSG — один из форматов, которые обрабатывает File2Txt, так что можно отправлять ему что угодно одной загрузкой, не выбирая страницу. Соседи, о которых стоит знать: HTML в текст для сохранённых веб-страниц и разметки рассылок и CSV в текст для выгрузок, которые обычно приходят вложениями к тем самым письмам, что вы уже конвертируете. Для живых страниц Web2Txt стягивает URL прямо в текст, а со стороны кода есть конвертер репозитория GitHub в текст — чтобы соединить тред с реализацией, о которой в нём спорили. Руководство по подготовке документов для LLM излагает общую логику.
Repo2Txt создаёт и поддерживает v12hero — независимый разработчик, который делает нативные и веб-приложения с приоритетом приватности.