Wie kann ich am einfachsten eine Outlook-PST-Datei mit allen E-Mails in eine MySQL-Datenbank exportieren?
Antworten
Zu viele Anzeigen?Igitt. Am einfachsten wäre es wahrscheinlich, wenn Sie Ihre PST-Datei in Outlook öffnen und
File->Import and Export, Export to a File, Comma Seperated Values (Windows)
Dies schafft eine CSV-Datei die Sie dann in MySQL über mysqlimport .
Wenn Sie mehr Informationen als nur den Inhalt der Nachrichten benötigen, müssen Sie sich auf verschiedenen exotischen Wegen direkt in den Speicher einwählen.
Könnte Powershell dafür geeignet sein? Z.B. E-Mails in einem Ordner aufzählen, Sql-Insert für jeden erstellen, Insert an Batch-Sql-Skript anhängen:
$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
Ich würde einen Automatisierungsclient in C# schreiben, der die Outlook-E-Mails durchläuft und dann jede einzelne in Ihre Datenbank hochlädt. Nichts von dem Zeug ist Raketenwissenschaft. Der Automatisierungsclient erfordert, dass Outlook auf dem Rechner installiert ist und läuft. Mit anderen Worten, bei diesem Ansatz geht es nicht nur um das "Lesen" der PST-Datei; die Automatisierung setzt voraus, dass die Outlook-Anwendung tatsächlich ausgeführt wird und Ihr Code die Anwendung auffordert, die E-Mails einzeln zu öffnen. (Sie müssen dabei nicht die gesamte Benutzeroberfläche anzeigen).
Hier ist eine Frage zu wie man eine PST-Datei durch Automatisierung von Outlook mit C# liest . Danach müssen Sie die MySQL-Aktualisierung und eine gute Fehlerbehandlung hinzufügen. Testen Sie gründlich, bevor Sie die Dateien aus Outlook löschen. Wenn Sie sich dafür entscheiden, die Dateien nicht zu löschen, stellen Sie sicher, dass Sie einen guten Indizierungsansatz haben, um Idempotenz zu gewährleisten.
- See previous answers
- Weitere Antworten anzeigen