Как работать с письмами в формате maildir

29 мая 2019
301
mail

Многие хостинг провайдеры соглашаются предоставить полные архивы почтовых ящиков клиентов в формате 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

Возможные флаги:

  • (seen) S: пользователь прочитал сообщение
  • (trashed) T : пользователь удалил сообщение
  • l=IMAP тег #12. Более подробно можно узнать в документации Dovecot
  • n=IMAP тег #14. Более подробно можно узнать в документации Dovecot
Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК