Перейти к содержимому

Pst что за формат

  • автор:

Тайны виртуальных конвертов: чтение и парсинг .pst файлов

Встретить.pst-файл весом в десяток гигабайт — это не такая уж редкость. Когда почтовый ящик нужен для того, чтобы прочитать подборку лучших мемов недели, можно не заметить серьезных ограничений. Не займет много времени и поиск ключевого слова или конкретного идентификатора по всему почтовому ящику средствами Outlook. Но что, если найти нужно не конкретный идентификатор, а все идентификаторы, для которых известна только их структура?

Открытие и чтение файла

Для открытия и чтения.pst файлов воспользуюсь pypff — python оберткой для библиотеки libpff, написанной на C. Эта библиотека позволяет работать с форматами PFF (Personal Folder File) и OFF (Offline Folder File), в которые как раз и входит формат.pst, наряду с форматами.pab (Personal Address Book) и.ost (Offline Storage Table).

Работа с файлом будет подобна работе с древовидным архивом. Поэтому в первую очередь после чтения файла необходимо получить корневую папку:

Дальше порядок действий будет отличаться в зависимости от задач. Например, вы можете посмотреть список дочерних писем или папок и выбрать из них нужные и обработать только их. В случае с задачей поиска идентификаторов, буду вынужден обрабатывать все письма из всех папок, так как обрабатываемые почтовые ящики имеют разную структуру папок (в первую очередь разные названия и степени вложенности).

Получение списка писем

Для получения списка всех писем воспользуюсь рекурсивным методом, который проходит по папке и собирает содержимое из нее и её дочерних папок (код ниже).

Как можно увидеть, письма сразу превращаю в словари, извлекая нужную информацию из объектов pff.message. Для атрибутов в классе message определены также get-методы. Чтобы посмотреть полный список атрибутов, можно воспользоваться встроенной функцией __dir__(), вызвав её для соответствующего объекта. Ниже приведен список таких атрибутов и методов, для понимания возможностей работы с письмами:

Анализ писем

Для анализа была необходима следующая информация: тема письма, тело письма, папка, дата и время и данные об отправителе. Большую часть этой информации можно получить, просто взяв сами атрибуты объекта, но такой вариант не сработает для тела письма и почтового адреса отправителя.

Как можно видеть из списка атрибутов pff.message, письмо может иметь тело в трех форматах (plain_text, html, rtf), а точнее в одном из этих трех. Для задачи меня будет интересовать получение тела письма в формате текста, поэтому необходимо конвертировать html строки (которых оказалось больше всего). Для этого воспользуемся библиотекой BeautilfulSoup: создадим объект bs на основе нашего html_body и воспользуемся методом get_text(), чтобы получить очищенный от html тегов текст письма. На этом можно было бы остановится, но в результирующих строках оставались комментарии с описанием стилей и шрифтов, поэтому дополнительно производится их удаление с помощью регулярных выражений, а также замена двойных символов перевода строки на одинарные.

Остается получить адрес отправителя, для которого, в отличие от имени, выделенного атрибута не оказалось. Внимательный читатель мог заметить, что в pff.message имеется поле с интригующим названием «transport_headers». Обратившись к данному атрибуту, я увидел бы содержимое, описывающее путь электронного письма (изображение взято из интернета для примера).

Интересующее значение можно найти по ключу «Return‑Path», с тем отличием, что электронный адрес не был обрамлен треугольными скобками.

Собрав все воедино, получился один объект словаря, содержащий интересующие нас атрибуты исходного письма, а в результате обработки всего ящика получен список словарей. Не забываем закрыть файл после чтения списка писем.

Полученный список можно обрабатывать по своему усмотрению, например, искать определенные строки в темах или телах писем, или выбрать все письма от одного отправителя.

Для дальнейшего визуального анализа писем и извлеченных из них данных можно конвертировать список в pandas DataFrame и воспользоваться методом «to_excel()» для записи в файл.

Заключение

Подводя итоги, скажу, что задача обработки архивов почтовых ящиков — не частый гость, и порой бывает гораздо проще открыть.pst файл через Outlook и вручную найти интересующую информацию. Но если речь заходит про обработку десятков.pst файлов и поиск данных в каждом из них, то без автоматизации такая задача может стать настоящей пыткой.

Предложенный алгоритм позволяет прочитать архив почтового ящика и извлечь из него интересующее содержимое для всех писем. Полученные данные очищены от метатегов и приведены к единому формату, пригодному для чтения аналитиком. Этот алгоритм может быть использован для обработки одного ящика или для обработки нескольких, путем последовательного вызова или с использованием методов мультипроцессинга для повышения скорости обработки.

Pst что за формат

What’s on this Page

.PST вариант №

Файлы с расширением .pst представляют собой файлы личного хранилища Outlook (также называемые таблицей личного хранилища), в которых хранится разнообразная информация о пользователях. Информация о пользователе хранится в папках разных типов, включая электронные письма, элементы календаря, заметки, контакты и несколько других форматов файлов. Файлы PST используются для архивирования данных электронной почты в автономном режиме, которые впоследствии можно загружать и просматривать в различных приложениях.

Спецификации формата файла PST

Формат файла PST спецификации доступен от Microsoft в качестве бесплатного и безотзывного бесплатного патентного лицензирования через Open Specification Promise. .

Тип форматов PST

Форматы файлов PST подразделяются на два типа в зависимости от кодировки типа файла. Файлы PST с кодировкой ANSI являются старыми форматами файлов и поддерживаются только в Outlook 2002 и более ранних версиях. Такие файлы имеют максимальный размер 2 ГБ (2^^31^^ байт) и не поддерживают Unicode. Более современный тип формата файла, основанный на кодировке Unicode, снимает ограничение на размер файла и может достигать максимального размера данных 50 ГБ.

Логическая организация формата файла PST

В основе формата файлов PST лежит B-дерево, которое упорядочивает данные и позволяет выполнять поиск, последовательный доступ, вставки, удаления и т. д. в логарифмическом масштабе. Общая структура файла PST состоит из трех слоев.

Logical layers of a PST file

«Уровень базы данных узлов (NDB)» — уровень базы данных узлов находится на нижнем уровне файла PST и включает базу данных узлов. Эти узлы фактически представляют собой низкоуровневые хранилища файлов формата PST. Уровень NDB состоит из заголовка, информации о размещении файлов, блоков и BT-деревьев (Node BTree и Block BTree) с точки зрения хранения. Узлы и блоки уровня NDB связаны через BID данных, который является одним из четырех свойств ссылки на узел, т.е. NID (идентификатор узла), NID родителя, BID данных (BID блока) и BID подузла.

Уровень списков, таблиц и свойств — уровень LTP обеспечивает логическое понимание концепций более высокого уровня поверх NDB. Помимо других элементов, уровень LTP в основном состоит из контекста свойств (PC) и контекста таблицы (TC). PC представляет собой набор свойств, а TC представляет собой двумерную матрицу набора свойств и их наличия. Эффективная реализация ПК и ТС, уровень LTP использует следующие два типа структур данных поверх узла NDB:

  • Heap On Node (HN) — позволяет распределять поток данных узла на небольшие фрагменты переменного размера.
  • BTree on Heap (BTH) — BTH обеспечивает удобный и практичный способ поиска по данным. PC, описанные выше, реализованы как BTH и поэтому реализованы путем построения внутри структуры HN.

«Уровень обмена сообщениями» — на этом уровне реализованы правила и бизнес-логика более высокого уровня для работы с файлами PST. Логический вывод этого уровня приводит к объектам «Папка», объектам «Сообщение», объектам «Вложения» и «Свойствам», что стало возможным благодаря объединению слоев LTP и NDB. На этом уровне также определяются правила и требования, которым необходимо следовать при изменении содержимого PST.

Физическая организация формата файла PST

Высокий уровень файловой организации PST-файла показан на рисунке ниже. Это просто обзор различных концепций логических элементов файла PST.

Physical organization of the PST file format

Информация заголовка PST

Структура HEADER файла PST расположена в самом начале файла по смещению 0. Он содержит информацию метаданных о файле PST и информацию ROOT для доступа к структурам данных уровня NDB, описанным выше. Структура HEADER различается для версий формата PST файлов Unicode и ANSI.

Заголовок начинается с 4-байтового магического слова !BDN, представленного байтами (0x21, 0x42, 0x44, 0x4E). Еще одно 2-байтовое магическое число, SM (0x53, 0x4D), расположено по смещению 8 от начала файла. Информация о версии (ANSI или Unicode) находится со смещением 10 от начала файла. Шестнадцатеричное значение (0x17) указывает файл Unicode PST, а 0x0E или 0x0F представляет формат файла ANSI.

Поле Описание
dwMagic (4 байта) ДОЛЖЕН быть “ < 0x21, 0x42, 0x44, 0x4E >(«!BDN”)»
dwCRCPartial (4 байта) 32-битное значение CRC из 471 байта данных, начиная с wMagicClient (0ffset 0x0008)
wMagicClient (2 байта) ДОЛЖЕН быть “<0x53, 0x4D>”.
wVer (2 байта) Версия формата файла. Это значение ДОЛЖНО быть 14 или 15, если файл является файлом ANSI PST, и ДОЛЖНО быть 23, если файл является файлом Unicode PST.
wVerClient (2 байта) Версия формата файла клиента. Версия, соответствующая формату, описанному в этом документе, — 19. Создателям нового PST-файла на основе этого документа СЛЕДУЕТ инициализировать это значение равным 19.
bPlatformCreate (1 байт) Это значение ДОЛЖНО быть установлено на 0x01.
bPlatformAccess (1 байт) Это значение ДОЛЖНО быть установлено на 0x01.
dwReserved (8 байт)
bidUnused (только 8 байт Unicode) Неиспользуемое заполнение добавлено при создании формата файла Unicode PST.
bidNextP (Unicode: 8 байтов; ANSI: 4 байта) BID следующей страницы. Страницы имеют специальный счетчик для распределения значений bidIndex. Из этого счетчика выделяется значение bidIndex для BID для страниц.
bidNextB (только 4 байта ANSI): Следующая ставка. Это значение является монотонным счетчиком, который указывает BID, который будет назначен для следующего выделенного блока. Значения BID увеличиваются с шагом 4. Дополнительные сведения см. в разделе 2.2.2.2.
dwUnique (4 байта) Это монотонно возрастающее значение, которое изменяется каждый раз при изменении структуры HEADER файла PST. Функция этого значения состоит в том, чтобы предоставить уникальное значение и гарантировать, что CRC HEADER различны после каждой модификации заголовка.
rgnid[](128 байт) Фиксированный массив из 32 NID, каждый из которых соответствует одному из 32 возможных NID_TYPE (NID_TYPE, NID_TYPE_NORMAL_FOLDER, NID_TYPE_SEARCH_FOLDER, NID_TYPE_NORMAL_MESSAGE,NID_TYPE_ASSOC_MESSAGE)
qwUnused (8 байт) Неиспользуемое пространство; ДОЛЖЕН быть установлен на ноль. Только в формате Unicode PST.
root (Unicode: 72 байта; ANSI: 40 байтов) КОРНЕВАЯ структура (раздел 2.2.2.5).
dwAlign (4 байта) Неиспользуемые байты выравнивания; ДОЛЖЕН быть установлен на ноль. Только в формате Unicode PST.
rgbFM (128 байт) Устаревший FMap. Это больше не используется и ДОЛЖНО быть заполнено 0xFF. Читатели ДОЛЖНЫ игнорировать значение этих байтов.
rgbFP (128 байт) Устаревший FPMap. Это больше не используется и ДОЛЖНО быть заполнено 0xFF. Читатели ДОЛЖНЫ игнорировать значение этих байтов.
bSentinel (1 байт) ДОЛЖЕН иметь значение 0x80.
bCryptMethod (1 байт) Указывает, как кодируются данные в файле PST. ДОЛЖНО быть установлено одно из предопределенных значений (NDB_CRYPT_NONE, NDB_CRYPT_PERMUTE, NDB_CRYPT_CYCLIC).
rgbReserved (2 байта) Сдержанный; ДОЛЖЕН быть установлен на ноль.
bidNextB (8 байт) Указывает следующее доступное значение BID. Только в формате Unicode PST.
bidNextB (ТОЛЬКО Unicode: 8 байт) Следующая ставка. Это значение является монотонным счетчиком, который указывает BID, который будет назначен для следующего выделенного блока. Значения BID увеличиваются с шагом 4. Дополнительные сведения см. в разделе 2.2.2.2.
dwCRCFull (4 байта) 32-битное значение CRC из 516 байтов данных, начиная с wMagicClient и заканчивая bidNextB включительно. Только в формате Unicode PST.
ullReserved (8 байт) Зарезервировано; ДОЛЖЕН быть установлен на ноль. Только формат файла ANSI PST.
dwReserved (4 байта) Зарезервировано; ДОЛЖЕН быть установлен на ноль. Только формат файла ANSI PST.
rgbReserved2 (3 байта)
bЗарезервировано (1 байт)
rgbReserved3 (32 байта)

Защита данных

В целях безопасности файлы PST также могут быть защищены паролем, что требует, чтобы загрузочное приложение применяло пароль, прежде чем его можно будет просмотреть. Пароль, примененный к файлу PST, хранится в хранилище сообщений. Однако это не обеспечивает надежной защиты данных, поскольку пароль можно удалить с помощью доступных средств. Кроме того, указанный пользователем пароль не используется как часть ключа для кодирования и декодирования алгоритмов шифрования. Таким образом, защита данных, к которым могут получить доступ неавторизованные стороны, бесполезна. Хранение пароля в виде хэша CRC-32 исходной строки также делает его слабым методом защиты данных от грубой силы.

Вот как открыть файлы PST на компьютерах с Windows 10

Если вам интересно, что такое файл PST и как его просматривать и изменять на ПК с Windows 10, то в этом посте будет показано, как открыть этот формат файла.

Файл PST – это формат файла по умолчанию, который используется для хранения информации, созданной Microsoft Outlook. Файлы PST обычно включают в себя адрес, контакты и вложения электронной почты. Тем не менее, файлы PST обычно имеют ограничение хранилища 2 ГБ, и производительность программного обеспечения Microsoft Outlook снижается, когда файл PST приближается к пределу хранилища.

Как открыть файлы PST в Windows 10

Файлы PST могут быть открыты только программами, которые поддерживают его формат файлов; Эта статья состоит из пяти лучших программ, которые могут получить доступ к программе PST на вашем ПК с Windows 10.

Microsoft Outlook 2016

Microsoft Outlook – это стандартный почтовый клиент и менеджер информации, используемый миллионами людей на своих компьютерах с Windows 10. Это программное обеспечение является отличным выбором для использования для открытия файлов PST в Windows 10.

Кроме того, Microsoft Outlook имеет множество функций, которые делают его уникальной программой; MS Outlook может отслеживать все ваше расписание и контакты. Программа также фильтрует вашу электронную почту и сортирует ее в порядке важности. Outlook также позволяет синхронизировать вашу информацию с мобильными устройствами, чтобы вы могли получить доступ к вашему расписанию и связаться в любое время.

Хотя Outlook поддерживает много форматов, но файлы, созданные программой, сохраняются в формате PST. Кроме того, Outlook имеет много функций, которые позволяют вам иметь больше прав для изменения файлов PST по вашему усмотрению. Программа также позволяет легко экспортировать и импортировать файлы PST. Microsoft Outlook – это отличный клиент для работы с электронной почтой и расписанием, который предлагает хорошее соотношение цены и качества.

Купить Microsoft Outlook 2016

  • СВЯЗАННЫЕ: полное исправление: в папках Outlook в вашем почтовом ящике есть конфликты имен

Сервер Microsoft Exchange

Эта программа является стандартным бизнес-сервером, который доставляет информацию, такую ​​как электронная почта, расписание и контакты, на ваш ПК и мобильные устройства. Если вы хотите без проблем открывать PST-файлы в Windows 10, лучше всего использовать сервер Microsoft Exchange.

Сервер Exchange предлагает множество функций, которые позволяют эффективно управлять бизнесом благодаря удобному интерфейсу и простым в использовании инструментам. Exchange Secure поддерживает различные форматы файлов, такие как PST, и позволяет изменять и читать файлы PST. Вы можете легко импортировать PST-файлы в ваш интернет-сервис или на мобильные устройства, используя сервер обмена Microsoft.

Кроме того, если вы хотите эффективное управление вашей электронной почтой малого бизнеса; Этот инструмент является отличной программой для запуска на ПК с Windows 10.

Загрузите сервер Microsoft Exchange

Outlook PST Viewer

Outlook PST Viewer – это новая служебная программа, служащая клиентом для работы с электронной почтой и расписанием. Эта программа позволяет вам сортировать вашу электронную почту и имеет функции, которые позволяют конвертировать ваш файл PST в другие форматы файлов.

Этот инструмент поддерживает множество форматов файлов, таких как CSV, ODT, TXT, HTML, JPG, BMP и особенно файлы PST.

Вы можете легко получить доступ к файлам PST и просмотреть информацию, содержащуюся в них с помощью этой программы. Пользовательский интерфейс прост и удобен, а программа легкая по сравнению с другими конкурирующими программами.

  • ЧИТАЙТЕ ТАКЖЕ: 5 лучших программ для защиты электронной почты на 2018 год

Между тем Outlook PST Viewer дает хорошую альтернативу перспективам Microsoft по более низкой цене.

Купить Outlook PST Viewer

Ремо Ремонт Outlook

Другой инструмент, который вы также можете использовать для открытия файлов PST в Windows 10, – это Remo Repair Outlook . Remo Repair Outlook – это служебное программное обеспечение, которое используется для восстановления поврежденных или недоступных файлов PST. Этот инструмент сканирует поврежденные файлы PST для файлов данных, контактов и других данных Outlook.

Кроме того, Remo Repair Outlook – отличное программное обеспечение для доступа к файлам PST, поскольку оно может сканировать как хорошие файлы PST, так и поврежденные файлы PST. С помощью этого инструмента вы можете извлекать, изменять и исправлять поврежденные файлы PST. Инструмент читает файлы и восстанавливает их исходное состояние без изменения какой-либо информации.

Кроме того, программа легка в использовании с простым интерфейсом, что делает ее обязательной для пользователей с файлами PST.

Скачать приложение Remo Repair Outlook

  • СВЯЗАННЫЕ: 3 децентрализованных почтовых клиента для использования или тестирования в Windows 10

Microsoft Outlook Express

Microsoft Outlook Express – это клиент электронной почты и информации, разработанный Microsoft. Этот инструмент позволяет пользователям управлять электронной почтой и позволяет использовать несколько учетных записей электронной почты в одной системе.

Кроме того, Outlook Express также интегрирует популярные почтовые системы, такие как POP и IMAP, и вы можете выполнять базовые функции редактирования HTML и настраивать свои почтовые сообщения.

Между тем Outlook Express поддерживает различные форматы, такие как форматы файлов PST и EDB. Следовательно, эта программа позволяет вам открывать файлы PST на вашем компьютере с Windows 10. Кроме того, вы можете просматривать, редактировать и изменять файлы PST.

Тем не менее, Outlook Express больше не поддерживается Microsoft и была заменена почтой Windows, но программа по-прежнему удобна, если вы хотите получить доступ к файлам PST.

Прочитайте наше руководство о том, как загрузить Microsoft Outlook Express.

Наконец, любая из программ, упомянутых выше, может открывать файлы PST на компьютерах с Windows 10. Хотя некоторые программы доступны по более высокой цене, но они применимы при открытии файлов PST в Windows 10.

Если вы недавно пользовались какой-либо из программ, о которых мы упоминали выше, сообщите нам об этом, поделившись с нами своим опытом. Не стесняйтесь комментировать ниже.

Чем открыть файл PST, если нет Office Outlook

Почтовый клиент Microsoft Outlook хранит пользовательские данные не только на удаленном сервере. Данные учетных записей, использующих протоколы POP и IMAP почтовый клиент может сохранять в файлы формата PST , доступные автономно. Файлы PST могут использоваться в качестве резервной копии электронных писем, контактов, событий календаря и других данных, а также для их переноса на другой компьютер с установленным почтовым клиентом от Microsoft.

А теперь представьте себе ситуацию, когда на руках у вас есть ранее сохраненный файл PST , но пока что нет Outlook, а просмотреть содержимое файла надо. Открыть PST -файл обычным текстовым редактором не получится, но есть программы, которые умеют читать PST без помощи каких-либо средств Microsoft. Сегодня мы познакомимся с тремя такими приложениями — SysInfoTools PST File Viewer, BitRecover PST Viewer и Gain Tools PST Converter.

SysInfoTools PST File Viewer

Возможности бесплатной версии этой программы ограничены, она позволяет лишь просматривать заголовки, адрес отправителя и дату получения письма, чего, конечно, недостаточно. Приложением поддерживается экспорт считанных данных в HTML -формат, но опять же в бесплатной версии данные экспортированы будут в ограниченном объеме.

SysInfoTools PST File Viewer

Из плюсов следует отметить расширенный поиск, создание снимков текущего состояний программы, поиск PST -файлов на локальном диске, ведение подробного лога действий. А еще PST File Viewer от SysInfoTools может читать PST -файлы с поврежденной структурой.

SysInfoTools PST File Viewer

BitRecover PST Viewer

В отличие от SysInfoTools PST File Viewer, этот инструмент лишен каких-либо дополнительных функций вроде экспорта в другие форматы, всё что он умеет делать, это открывать PST -файлы.

BitRecover PST Viewer

Содержимое файлов почтового клиента доступно в полном объеме. Поддерживается одновременный просмотр нескольких файлов PST , в том числе поврежденных, защищенных паролем и имеющих вложения, данные отображаются в отформатированном удобном для чтения виде. BitRecover PST Viewer понимает кодировки ANSI и UNICODE , способна работать с PST -файлами размером более 2 Гб.

Gain Tools PST Converter

Судя по названию, предназначается эта программа для конвертирования PST -файлов в другие форматы, но с таким же успехом ее можно использовать как просмотрщик.

Gain Tools PST Converter

Gain Tools PST Converter также поддерживает просмотр содержимого PST -баз Outlook в полном объеме, не считая вложений. Утилита умеет извлекать из файлов PST контакты в VCF , преобразовывать PST в MBOX , MSG и EML/EMLX . Gain Tools PST Converter платная, но ограничения тестовой версии затрагивают лишь функции конвертирования.

Gain Tools PST Converter

Примечание: перед тем как открывать файл PST в сторонних программах, убедитесь, что он не используется другими приложениями.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *