Каким будет самый простой способ взять файл Outlook PST и экспортировать все электронные письма в базу данных MySQL?
Как я могу выгружать электронные письма из PST-файла Outlook в базу данных MySQL?
Ответы (6)
Я не знаю ответа, но, если вы посмотрите на программу загрузки электронной почты Google (с открытым исходным кодом), они выполняют часть чтения ...
Ой. Вероятно, самым простым было бы открыть PST-файл в Outlook и использовать
File->Import and Export, Export to a File, Comma Seperated Values (Windows)
При этом создается файл CSV, который затем можно загрузить в MySQL через mysqlimport.
Если вам нужна дополнительная информация, помимо содержимого сообщений, вам нужно будет напрямую подключиться к магазину различными экзотическими способами.
Powershell может быть хорош для этого? Например, перечислить электронные письма в папке, создать для каждой вставку sql, добавить вставку в пакетный сценарий sql:
$olApp = New-Object -com Outlook.Application
$namespace = $olApp.GetNamespace("MAPI")
$folder = $namespace.GetDefaultFolder(1)
$folder.Items | %{
"insert into MyTable (MyCol1, MyCol2, etc) values ($_.Subject, $_.body, etc)"
} | out-file "outfile.sql" -Append
Я бы написал клиент автоматизации на C #, чтобы перебирать электронные письма Outlook, а затем загружать каждое в вашу базу данных. Все это не ракетостроение. Клиент автоматизации требует, чтобы на компьютере был установлен и запущен Outlook. Другими словами, этот подход подразумевает не просто «чтение» PST; автоматизация подразумевает, что приложение Outlook действительно запущено, и ваш код просит приложение открывать электронные письма по отдельности. (При этом вам не нужно отображать весь пользовательский интерфейс).
Вот вопрос о том, как читать файл PST путем автоматизации Outlook с помощью C #. Начиная с этого, вам нужно добавить материал для обновления MySQL и некоторую хорошую обработку ошибок. Обязательно тщательно проверьте перед удалением файлов из Outlook. Если вы решите не удалять, убедитесь, что у вас есть хороший подход к индексации, чтобы обеспечить идемпотентность.
Я только что наткнулся на следующее решение: libpst.
Очевидно, что есть еще кое-что для обработки одного из преобразованных форматов в SQL, но если импорт в Outlook, а затем экспорт в формате CSV невозможен, libpst будет хорошей альтернативой.
Там было сделано :)
Да, libpst + 6 пакетов света coors - ваше решение здесь :)
как сказал Чизо, не ракетостроение. Свалку в большой стол, но что делать с вложениями, я немного поборолся. Первая итерация закончилась тем, что сбросил данные на диск и разбил путь к «материалам».
Итерация 2, установка небольшого экземпляра Hadoop и загрузка всего shebang в Hbase. У меня было 600 ГБ писем ... мало ОКР, но отлично работает по сей день :)