Thunderbird-Adressbücher

Gibt es inzwischen Ideen, wie ich Thunderbird-Adressbücher in LibreOffice einbinden kann? Vielen Dank für Hinweise!

Erzeuge ein Datanbankverzeichnis und lass Thunderbird csv-Dateien dorthin exportieren. Eine csv-Datei pro Adressbuch.
menu:Datei>Neu>Datenbank…
Verbindung zu existierender Datenbank
Typ: Text
Definiere die Importoptionen
[X] Registriere die Datenbank
Speicher das Datenbankdokument. Es enthält ausschließlich Konfigurationsdaten. Die Adressdaten sindin den csv-Dateien.
Empfehlung: Erstelle ein paar Abfragen mit dem Abfrageassistenten oder in der Entwurfsansicht, welche die wirklich benötigten Spalten beinhalten. Abfragen können auch Filter und Sortierungen beihnalten. Außerdem können in Abfragen die Spaltennamen frei definiert werden.

Zweite Möglichkeit: Verbinde ein Base-Dokument mit der Datenbank im Thunderbird-Profil. Dazu brauchst Du eine ODBC-Quelle, vielleicht geht auch JDBC.
TB-Profil/abook.sqlite → ODBC-Manager → LibreOffice Base oder andere Datenbankanwendungen

… und für die JDBC-Verbindung steht die Beschreibung direkt im Base-Handbuch. Die direkte Verbindung lieft bloß für Thunderbird bis 2020/TB 78. Danch ist Thunderbird auf SQLite umgestiegen.

Aus dem Base-Handbuh von 2021:

Weitere SQLite-Verbindungen
Es existieren zwar JDBC-Treiber für SQLite. Der Zugriff auf eine SQLite-Datenbankdatei bricht
unter LibreOffice-Base aber leider mit der Fehlermeldung ab:
SQLite only supports TYPE_FORWARD_ONLY Cursors
Auch eine direkte Verbindung zu SQLite gibt es für LibreOffice bisher nicht.

@Villeroy : Ich erweitere ja beständig das Handbuch. Und sowohl zum Thunderbird Adressbuch als auch zu SQlite steht da jetzt mehr drin. In der aktuellen Version geht es zum Type_Formward_Cursor so weiter:

Die Tabellen lassen sich so nicht öffnen. Hier hilft eine Einstellung in Bearbeiten → Datenbank → Einstellungen → Erweiterte Einstellungen. Unter Besondere Einstellungen muss Satztyp des Datenbanktreibers akzeptieren angewählt werden.

1 Like

Bitte vielmals um Entschuldigung. Die letzte Ausgabe schimmelte noch in meinem Downloads-Ordner.

Wie schon erwähnt wurde, nutzt Thunderbird inzwischen Sqlite. Die Verbindung via odbc klappt unter Windows problemlos. Das zweite Problem ist allerdings das Tabellenformat, das erst in “gewohntere” Tabellen umformatiert werden muss.
.
Eine Beispielabfrage habe ich mal in einem anderen Thread/Forum formuliert, wo man auch eine Beispiel-odb findet.

select uid, localId, card, name, value
from cards
join properties 
on cards.uid=properties.card where properties.name="PrimaryEmail"

Vielen Dank für die Vorschläge.
Ich habe eine Datenquelle unter Verwendung des SQLlite-Treibers erstellt. Eine Verbindung zur Datenbank gelingt. Die Datenquelle abook.sqjlite kann ich öffnen, sehe aber nur last_cards, lists und properties. Mit der Beispielabfrage von Wanderer bin ich leider nicht weitergekommen.

Vermutlich meinst Du list_cards. Jedenfalls sehe ich hier auch die 3 Tabellen wenn ich per JDBC an die Datenbank ran gehe.

Ich habe mir das für das Handbuch einmal so zusammengestellt:

SELECT "a"."card",
"a"."value" "DisplayName", 
( SELECT "value" FROM "properties" WHERE "card" = "a"."card" AND "name" = 'PrimaryEmail' ) "PrimaryEmail", 
"lists"."name" "list" 
FROM "properties" AS "a" 
LEFT JOIN "list_cards" ON "list_cards"."card" = "a"."card" 
LEFT JOIN "lists" ON "lists"."uid" = "list_cards"."list" 
WHERE "a"."name" = 'DisplayName'

Hallo RobertG,
vielen Dank für den SQL-Syntax. Ich habe ihn ausgeführt und erhalte die Meldung “Befehl ausgeführt”. Leider ohne sichtbare Resultate.
Ist dein Handuch im Internet erhältlich?

Wenn Du SQL-Befehle in Extras → SQL ausführst, musst Du Ausgabe der "select"-Anweisung anzeigen auswählen.

Ich würde stattdessen bei den Abfragen Abfrage in SQL-Ansicht erstellen wählen und das Ganze dort einfügen. Dann hast Du eine bständige Abfrage.

Das Handbuch ist über die LibreOffice Dokumentation zusammen mit Datenbanken verfügbar. Laufende Überarbeitungen findest Du auch auf meiner Homepage.

Habe das mal mit einem Dummy-Profil getestet. Mit “lists” sind anscheinend Verteilerlisten gemeint, also Verknüpfungen zu bestehenden Adressbuch-Einträgen. Das wäre dann für LO Serienbriefe sehr nützlich wenn man so eine Verteilerliste schon in Thunderbird anlegen kann. Etwas lästig ist die Struktur der “Properties” weil man für jedes Serienbrief-Feld eine Unterabfrage braucht.
Was mich etwas irritiert ist der Umstand, dass ich immer nur die Einträge des Standard-Adressbuches sehe, auch wenn die Datenbank noch andere Bücher enthält (z.B. Privat, Betrieb, Hausverwaltung).
Außerdem ist die Base-Datenbank gesperrt wenn Thunderbird geöffnet ist. Das “readonly” Atribut in ODBC hat keine Wirkung.

Ich habe mal ein separates Adressbuch erstellt. Das Adressbuch hat dann den Namen abook-1.sqlite erhalten. Der Kontakt zur Standarddatenbank wird hingegen nach abook.sqlite erstellt. Da gibt es also jeweils eigenständige SQLite-Datenbanken.
Die Tabelle “properties” kann ich übrigens auch dann nicht bearbeiten, wenn Thunderbird geschlossen ist. Von dem Bearbeiten der Daten in Base würde ich auch Abstand nehmen, da ich nicht weiß, wie weit Thunderbird dann noch in der Lage ist, bei Fehleingaben die entsprechende Tabelle in sein entsprechendes Schema einzulesen.

Ah, das mit abook-x sehe ich jetzt auch.

Daher wäre es schön, wenn man dem Treiber “readonly” mitgeben könnte. Schnell drückt man mal eine Taste während der Cursor im Datenquellenfenster steht.

Vielen Dank für die Tipps. Mir gelingt es aber immer noch nicht, auf das Adressbuch von Thunderbird zuzugreifen. Die Meldung im Anhang.


Wird die Document-Foundation eine Lösung anbieten, aus der man wieder auf Thunderbird direkt zugreifen kann?

Gehe NICHT über Extras>SQL
Gehe über Einfügen>Abfrage (SQL) und speicher die Abfrage unter einem Namen. Ist Deine Datenbank registriert, erscheint die Datenbank mit ihrenTabellen und gespeicherten Abfragen im Datenquellenfenster. Dort wählst Du dann die Abfrage auf der linken Seite und ziehst Spaltenköpfe der Abfrage in ein Writer-Dokument und erhältst Serienbriefelder.

@cbx : Bei mir gibt der Befehl, auch wenn Du ihn wieder über Extras → SQL anzeigst, die Listenmitglieder aus. abook.sqlite enthält wohl nur das Persönliche Adressbuch und die dort zusammengestellten Gruppen, nicht die gesammelten Adressen aus allen Mails, die Du erhalten hast.

Die gesammelten Adressen findest Du anscheinend in der Datei history.sqlite

Eine Lösung zum Direktzugriff wird es nicht mehr geben, da eben Thunderbird die Art des Adressbuchs geändert hat und seit der Version 78 auf SQLite zurück greift. Wenn Du in Thunderbird das entsprechende Verzeichnis aufsuchst wirst Du feststellen, dass da sehr viele SQLite-Datenbanken enthalten sind.

Zur Beschreibbarkeit steht im nächsten Handbuch der folgende Text:

Die Daten sind nicht beschreibbar, wenn gleichzeitig Thunderbird geöffnet ist. Beim JDBC-Treiber kann die Beschreibbarkeit auch dadurch unterbunden werden, wenn Bearbeiten → Datenbank → Erweiterte Einstellungen → Besondere Einstellungen → Die Rechte vom Datenbanktreiber ignorieren abgewählt bzw. auf ‘Nein’ gesetzt wird.

… nur um zu zeigen, wie solche Threads den Inhalt des Handbuchs beständig erweitern.

OK, da ist also history (gesammelt), abook (standard) und möglicherweise noch diverse abook-X für benutzerdefinierte Bücher. Wenn Base jetzt mehrere Datenbanken zusammenführen könnte, wäre das kein Problem. Kann es aber nicht.

Wollte man das Problem jetzt übers Knie brechen, könnte man wie folgt vorgehen:
Ein Base-Dokument mit allen Abfragen und Formularen zum Bearbeiten der Daten, ohne die Schlüsselwerte auch nur anzuzeigen, sagen wir mal verbunden mit abook.sqlite via JDBC.
Dann hätte man schon mal eine Serienbriefquelle vorkonfiguriert.
Will man jetzt ein anderes Adressbuch history oder abook-X nutzen braucht man eigentlich nur den Dateinamen in der URL zu ändern. Alles andere kann ja genau gleich bleiben weil die TB-Datenbanken anscheinend eine einheitliche Struktur haben.
Man könnte auch verschiedene Versionen desselben Base–Dokuments abspeichern, die sich nur im Dateinamen innerhalb der URL unterscheiden und für den Serienbrief ändert man die Registrierung auf die richtige odb-Datei. Das ist vielleicht umständlich aber in Sekunden zu erledingen. Die Hauptarbeit bestünde darin, eine Handvoll sinnvoller Abfragen und Formulare zu entwerfen für postalische Serienbriefe, für Serienbriefe per Mailanhang und für andere sinnvolle Sachen.

Und schließlich könnte sich noch jemand erbarmen, eine kleine Erweiterung zu schreiben, die das richtige abook für den richtigen Zweck auswählt. Hat man ein brauchbares Base-Dokument, kann ein einfacher Folder-Picker das richtige Profil auswählen und ein Listenfeld die jeweiligen Adressbücher.

Oder in TB ein zusätzliches Adressbuch anlegen mit allen erforderlichen Adressen.

na klar, dann eben so

1 Like