Формат файлов EML¶
EML (от англ. e-mail) — формат файла, представляющего собой сохранённое электронное письмо в виде обычного текстового файла, соответствующего стандарту RFC 822 (и его обновлённой версии RFC 5322). Расширение .eml используется многими почтовыми клиентами для сохранения отдельных писем на диск. Файл содержит заголовки письма (отправитель, получатель, тема, дата), тело сообщения и, при наличии, вложения в кодировке MIME.
¶Структура файла
Формат EML является текстовым и имеет структуру, определённую стандартом электронной почты:
- Заголовки (headers) — блок строк в начале файла:
From,To,Cc,Subject,Date,Message-ID,MIME-Versionи другие. Заголовки отделены от тела письма пустой строкой. - Тело письма — текст сообщения. Может быть в формате
text/plain(простой текст) илиtext/html(HTML-разметка). - Вложения — передаются как части MIME-структуры с кодировками base64 или quoted-printable. Каждая часть разделена строкой-разделителем
boundary.
Пример минимального EML-файла:
``` From: ivanov@example.com To: petrov@example.com Subject: Тестовое письмо Date: Mon, 15 Jan 2024 10:30:00 +0300 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8
Это текст письма. ```
¶История и стандарты
Формат восходит к стандарту RFC 822, принятому в 1982 году и описавшему структуру ARPANET-сообщений. В 2008 году он был заменён обновлённым стандартом RFC 5322, уточнившим синтаксис заголовков и кодировки. Расширение .eml стало фактическим стандартом для сохранённых писем после того, как его начали использовать почтовые клиенты Microsoft Outlook Express, Mozilla Thunderbird, Windows Mail и другие.
Связанный формат .emlx используется почтовым клиентом Apple Mail (структура включает заголовок, тело и индекс сообщения). Формат .msg — проприетарный формат Microsoft Outlook для хранения отдельных писем в бинарном виде.
¶Как открыть EML-файл
¶Почтовые клиенты
Наиболее естественный способ открытия — импорт в почтовый клиент, поддерживающий стандарт MIME:
- Mozilla Thunderbird — открывает EML по двойному щелчку (в Windows) или через меню «Файл → Открыть».
- Microsoft Outlook — поддерживает перетаскивание EML-файлов в папку почтового ящика.
- Windows Mail / Windows Live Mail — ассоциированы с EML по умолчанию в ряде версий Windows.
- Apple Mail — открывает EML-файлы в macOS.
- The Bat!, eM Client, K-9 Mail (Android) — поддерживают формат.
¶Веб-сервисы и программы просмотра
Для быстрого просмотра содержимого без установки почтового клиента используются онлайн-сервисы (например, Gmail позволяет перетащить EML-файл в веб-интерфейс через «Импорт почты и контакты») и десктопные утилиты: Total Commander с плагинами, бесплатная программа MBox Viewer, Kaitai Struct-based просмотрщики.
¶Текстовые редакторы
Поскольку EML — текстовый формат, его можно открыть в любом текстовом редакторе (Блокнот, Notepad++, VS Code, Sublime Text). Вложения при этом будут видны как закодированный текст base64, а HTML-тело письма — как исходная разметка. Для извлечения вложений из текстового вида потребуется декодирование base64.
¶Программные средства разработки
Для программной обработки существуют библиотеки: email в стандартной библиотеке Python, javax.mail в Java, MimeKit в .NET, libetpan на C. Они позволяют парсить заголовки, извлекать текст и вложения.
¶Применение
Формат EML применяется в нескольких сценариях:
- Архивирование переписки — почтовые клиенты позволяют сохранять отдельные письма или пакеты писем в EML для долговременного хранения.
- Перенос между клиентами — экспорт из одного почтового клиента и импорт в другой.
- Юридические и forensic-процедуры — EML сохраняет заголовки с метаданными (IP-адреса в
Received-заголовках, временные метки), что делает формат полезным при расследованиях и судебных экспертизах. - Программная обработка почты — рассылки, тестирование почтовых систем, автоматизация.
¶Ограничения
EML хранит только одно письмо. Для хранения цепочки переписки используются контейнерные форматы: MBOX (все письма в одном файле) и Maildir (каждое письмо — отдельный файл в каталоге). Формат .msg Outlook несовместим напрямую с EML и требует конвертации.
