Thunderbird Adressverzeichnis
Nach dem erfolgreichen Transfer einer großen Mailbox von der Uni-Wien zu ClubComputer fehlte ein Adressverzeichnis. Es hat eines gegeben, aber wahrscheinlich war dieses Verzeichnis lokal und ging verloren. Wie kann man nun die Adressen aus den zahlreichen Mails extrahieren?
Wenn Du also auch ein Adressbuch aus dem Mailstore Deiner Thunderbird-Installation erstellen willst, dann ist diese Anleitung genau richtig für Dich. Auch für Outlook-User kann dieser Weg eine Lösung sein. Einfach Thunderbird installieren, das gewünschte Mailbox-Konto anlegen, warten bis die lokalen IMAP-Ordner aufgebaut sind und die extrahieren Adressen in Outlook importieren.
Auslesen der Kontaktadressen
Da die Daten durch den Thunderbird nicht binär, sondern als Klartext abgelegt werden, ist das kein so großes Problem. Der Mailstore ist für jeden Ordner in einer gleichnamigen Datei ohne Erweiterung. In diesen Dateien befinden sich die Mails in chronologischer Reihenfolge, und die E-Mail-Adressen von Sender und Empfänger sind im Klartext zu lesen.
Die empfangenen Mails sind dabei gar nicht so interessant, das kann auch Werbung oder ein Newsletter sein, alles Adressen, an die man nicht schreibt. Interessanter sind jene Adressen, an die man selbst schreibt. Diese findet man in einem Ordner „Sent“. Im vorliegenden Projekt war diese Datei mehr als 8 GB groß.
Egal, welchen Editor ich auch bemüht habe, alle haben versagt, wenn es darum ging, diese Datei zu öffnen. Was kann man also tun, um diese Datei zu bearbeiten?
- Plan 1: Aufteilung der Datei in Portionen.
- Plan 2: Ein Editor, der große Dateien verarbeiten kann
Die Aufteilung der großen Datei in Teildateien hätte den Nachteil, dass man alle diese Teildateien getrennt bearbeiten müsste. Meine Wahl fiel daher auf den Editor EmEditor, der zur Bearbeitung sehr großer Textdateien geeignet ist. Der EmEditor bearbeitet die 8 GB große Datei als handle es sich um einen Einkaufszettel.
- EmEditor (Homepage)
Für 30 Tage kann der EmEditor kostenlos verwendet werden, danach kostet er im ersten Jahr 40,- und in den Folgejahren 20,- Euro.
Zeilen mit Adressaten filtern
Eine Zeile mit einer Empfängeradresse enthält den Text „To:“. Hier ist ein kurzer Auszug aus diesen Mailstore-Dateien:
... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Date: Mon, 29 Mar 2021 11:59:54 +0200 From: Tom Test tom.test@univie.ac.at To: Franz Fiala franz@fiala.cc ...
Wichtig ist nur die Zeile, die mit „To:“ beginnt. Man entfernt daher mit dem EmEditor alle Zeilen, die keine Adressen enthalten sind, also solche, die kein „To:“ enthalten. (Siehe auch Beitrag Zeilen entfernen)
^(?!.*To:.*).+$\ ^^
Damit ergibt sich eine Datei mit etwa 16.000 Adressen, doch sehr viele sind mehrfach vorhanden. Man muss natürlich das „To:“ entfernen und verschiedene Adresse händisch nachbearbeiten und einige weitere Texte suchen und ersetzen.
Entfernen doppelter Zeilen
Es gibt ein prächtiges Kommando in PowerShell, das genau das kann: Doppelte Zeilen entfernen.
Get-Content s:\\desktop\\e-adressen.txt | Sort | Get-Unique > s:\\desktop\\e-adressen1.txt
Das ergibt schließlich eine Datei mit ca. 1800 Adressen.
- https://secretgeek.net/ps_duplicates
- https://stackoverflow.com/questions/7609884/delete-duplicate-string-with-powershell
Adresse in CSV-Datei
Die Adressen präsentieren sich nun in folgender Form:
Franz Fiala, franz@fiala.cc
ffiala@clubcomputer.at
Die erste Zeile ist ein Beispiel mit einem vorangestellten Namen, die zweite enthält nur eine Adresse.
Damit Thunderbird die Adressen auch importieren kann, müssen die Adressen in einem definierten Format vorliegen. Um zu sehen, wie Thunderbird einen Kontakt formatiert, gibt man eine beliebige Adresse ein und exportiert danach die Adressen. Hier ist diese CSV-Datei:
Vorname,Nachname,Anzeigename,Spitzname,Primäre E-Mail-Adresse,Sekundäre E-Mail-Adresse,Messenger-Name,Tel. dienstlich,Tel. privat,Fax-Nummer,Pager-Nummer,Mobil-Tel.-Nr.,Privat: Adresse,Privat: Adresse 2,Privat: Ort,Privat: Bundesland,Privat: PLZ,Privat: Land,Dienstlich: Adresse,Dienstlich: Adresse 2,Dienstlich: Ort,Dienstlich: Bundesland,Dienstlich: PLZ,Dienstlich: Land,Arbeitstitel,Abteilung,Organisation,Webseite 1,Webseite 2,Geburtsjahr,Geburtsmonat,Geburtstag,Benutzerdef. 1,Benutzerdef. 2,Benutzerdef. 3,Benutzerdef. 4,Notizen Franz,Fiala,Franz Fiala,,ffiala@clubcomputer.at,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Die folgenden regulären Ausdrücke waren bei der Bearbeitung der Adressen nützlich.
Finden einer E-Mail-Adresse
Damit findet man Zeilen, die keine E-Mail-Adressen enthalten.
[a-zA-Z0-9-_\\.\\+]+@[a-zA-Z0-9-_\\.\\+]+\
Finden mehrerer E-Mail-Adressen in einer Zeile
Wenn beim Versand mehrere Adressaten angegeben worden sind, dann stehen auch mehrere E-Mail-Adressen in der „To:“-Zeile. Welche Zeilen das sind, findet man so:
.+?@.+@
Zeilen in Felder umformen
Wenn schließlich alle kleinen Unsauberkeiten beseitigt worden sind, muss man das vom Thunderbird verstandene CSV-Format einstellen, und das geht so:
^(.*) ([a-zA-Z0-9-_\\.\\+]+@[a-zA-Z0-9-_\\.\\+]+)\ ,,"$1",,$2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,\
Hat man nur eine E-Mail-Adresse, ist die Schreibweise
,,,,ffiala@clubcomputer.at,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Wenn neben der E-Mail-Adresse auch ein Name in der To-Zeile angegeben war, steht in der CSV-Datei:
,,Franz Fiala,,ffiala@clubcomputer.at,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Franz war pensionierter HTL Lehrer (TGM), Präsident von ClubComputer, Herausgeber der Clubzeitung PCNEWS und betreute unser Clubtelefon und Internet Support. Er war leidenschaftlicher Rapid Wien Fan. Er ist leider Anfang Jänner 2024 nach langer schwerer Krankheit verstorben.
Neueste Kommentare