Как я могу выгружать электронные письма из PST-файла Outlook в базу данных MySQL?

Каким будет самый простой способ взять файл Outlook PST и экспортировать все электронные письма в базу данных MySQL?


person Sam Hamilton    schedule 19.05.2009    source источник


Ответы (6)


Я не знаю ответа, но, если вы посмотрите на программу загрузки электронной почты Google (с открытым исходным кодом), они выполняют часть чтения ...

person Ali Shafai    schedule 19.05.2009
comment
это дает мне представление о том, как пройти долгий путь: pst - ›google -› imap - ›mysql - person Sam Hamilton; 20.05.2009

Ой. Вероятно, самым простым было бы открыть PST-файл в Outlook и использовать

File->Import and Export, Export to a File, Comma Seperated Values (Windows)

При этом создается файл CSV, который затем можно загрузить в MySQL через mysqlimport.

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

person Robby Slaughter    schedule 19.05.2009
comment
Мне нравится, насколько это может показаться простым, но поддержит ли он вложения? - person Sam Hamilton; 20.05.2009

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
person Seba Illingworth    schedule 19.05.2009

Я бы написал клиент автоматизации на C #, чтобы перебирать электронные письма Outlook, а затем загружать каждое в вашу базу данных. Все это не ракетостроение. Клиент автоматизации требует, чтобы на компьютере был установлен и запущен Outlook. Другими словами, этот подход подразумевает не просто «чтение» PST; автоматизация подразумевает, что приложение Outlook действительно запущено, и ваш код просит приложение открывать электронные письма по отдельности. (При этом вам не нужно отображать весь пользовательский интерфейс).

Вот вопрос о том, как читать файл PST путем автоматизации Outlook с помощью C #. Начиная с этого, вам нужно добавить материал для обновления MySQL и некоторую хорошую обработку ошибок. Обязательно тщательно проверьте перед удалением файлов из Outlook. Если вы решите не удалять, убедитесь, что у вас есть хороший подход к индексации, чтобы обеспечить идемпотентность.

person Cheeso    schedule 19.05.2009

Я только что наткнулся на следующее решение: libpst.

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

person TK.    schedule 18.08.2009

Там было сделано :)

Да, libpst + 6 пакетов света coors - ваше решение здесь :)

как сказал Чизо, не ракетостроение. Свалку в большой стол, но что делать с вложениями, я немного поборолся. Первая итерация закончилась тем, что сбросил данные на диск и разбил путь к «материалам».

Итерация 2, установка небольшого экземпляра Hadoop и загрузка всего shebang в Hbase. У меня было 600 ГБ писем ... мало ОКР, но отлично работает по сей день :)

person exalake    schedule 03.10.2015