Как работать с письмами в формате maildir
Многие хостинг провайдеры соглашаются предоставить полные архивы почтовых ящиков клиентов в формате maildir. В этой статье мы расскажем, что делать после того, как вы заполучили архив в таком формате.
Для начала распакуйте архив. Если архив был в формате tar.gz
, то потребуется установить архиватор 7zip или WinRAR. WinRAR можно скачать с официального сайта.
1. Как открывать письма. Пример для ОС Windows
После распаковки откройте папку cur
или new
. Каждый файл будет представлять отдельное письмо. Например здесь мы видим 3 письма:
Если писем много, а мы хотим найти определенное письмо, то проще всего ориентироваться на дату изменения файла.
Когда вы нашли нужный файл, то осталось просмотреть его. Для этого переименуйте любой файл в ИМЯ.eml
Далее два раза кликните по файлу. Если вы используете Windows 10, то выберите открытие при помощи стандартного приложения Почта.
2. Структура папок в формате maildir
Структура папок в формате maildir выглядит следующим образом:
├── cur
├── new
└── tmp
Письма хранятся в каталогах cur
и new
. Разница между каталогами cur
и new
лишь в том, что файлы в cur
были просмотрены программой чтения почты пользователя. А письма в new
- еще не были просмотрены.
tmp
используется для временного хранения новых сообщений.
Время модификации файла является датой доставки сообщения.
3. Формат maildir++
Если хостинг провайдер, у которого вы получили архив, использует для работы почты Dovecot, то с большой долей вероятности вы получили данные в формате maildir++. Проверить это очень просто - в распакованном архиве рядом с каталогами cur
, new
, tmp
будут файлы с именами dovecot-
в начале.
Формат maildir появился из-за того, что оригинальный maildir не полностью поддерживал протокол IMAP. Созданный командой Dovecot формат maildir обратно совместим с форматом maildir. Более подробно об этом формате можно прочитать на сайте wiki.dovecot.org/MailboxFormat/Maildir.
4. Названия файлов в maildir++
Пример названия файла:
1559134770.M480410P13977.mail4,S=2826,W=2881:2,S
<базовое имя файла>, <размер файла>, <флаги>
Цифры в начале файла до первой точки обозначают время в формате unixtime
1559134770.M480410P13977.mail4,S=2826,W=2881:2,S
Вот пример конвертации времени 1559134770
на сайте https://time.is/ru/Unix_time_converter:
Флаг S=
указывает размер письма в байтах.
Флаг W=
указывает размер письма c переводами строк CR + LF. Указывается так же в байтах.
1559134770.M480410P13977.mail4,S=2826,W=2881:2,S
Далее идет указатель версии флагов письма - специальных отметок о состоянии. В большинстве случаев это версия “2”. Версия 1 была экспериментальной и не используется.
1559134770.M480410P13977.mail4,S=2826,W=2881:2,S
В конце имени файла могут содержатся флаги, которые отображают состояние письма:
1559134770.M480410P13977.mail4,S=2826,W=2881:2,S
Возможные флаги: