Как я могу сбросить электронную почту из файла PST Outlook в базу данных MySQL? - PullRequest
2 голосов
/ 20 мая 2009

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

Ответы [ 6 ]

8 голосов
/ 20 мая 2009

Хлоп. Вероятно, самым простым будет открыть ваш PST в Outlook и использовать

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

Это создает CSV-файл , который затем можно вставить в MySQL с помощью mysqlimport .

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

0 голосов
/ 03 октября 2015

Это было сделано :)

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

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

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

0 голосов
/ 19 августа 2009

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

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

0 голосов
/ 20 мая 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
0 голосов
/ 20 мая 2009

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

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

0 голосов
/ 20 мая 2009

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

...