1. Startseite
  2. Nachrichten
  3. Herunterladen
    1. Thunderbird Release-Version
    2. Thunderbird 128 ESR
    3. Thunderbird 115 ESR
    4. Thunderbird Beta-Version
    5. Sprachpaket (Benutzeroberfläche)
    6. Wörterbücher (Rechtschreibprüfung)
  4. Hilfe & Lexikon
    1. Anleitungen zu Thunderbird
    2. Fragen & Antworten (FAQ) zu Thunderbird
    3. Hilfe zu dieser Webseite
  5. Forum
    1. Unerledigte Themen
    2. Letzte Beiträge
    3. Themen der letzten 24 Stunden
  • Anmelden
  • Registrieren
  • 
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Forum
  • Lexikon
  • Artikel
  • Seiten
  • Erweiterte Suche
  1. Thunderbird Mail DE
  2. Forum
  3. Hilfe zum Arbeiten mit Kontakten, Aufgaben und Kalendern
  4. Adressbuch

verlässliche Beschreibung für Dateistruktur des Adressbuches

  • thomasadd
  • 22. September 2017 um 08:47
  • Geschlossen
  • Unerledigt
  • thomasadd
    Mitglied
    Beiträge
    100
    Mitglied seit
    3. Okt. 2006
    • 22. September 2017 um 08:47
    • #1

    Gibt es eine verlässliche Beschreibung für die interne Struktur der Adressbücher? Wenn ich mir die abook-x.mab Dateien bei mir so anschaue, dann ist jede Datei anders strukturiert. Im Header sind jedesmal andere Hex-Zahlen zu den einzelnen Feldern zugeordnet und der Header stimmt bei keiner Datei mit dem eigentlichen Inhalt überein. Und selbst bei den einzelnen Datensätzen innerhalb einer Datei steht jedesmal was anderes davor. Und in wirklich jeder Datei ist es anders. Und es passt nie zum Header und auch nie zu den anderen Dateien.

    Gruß Thomas

  • muzel
    Gast
    • 22. September 2017 um 12:56
    • #2

    Moin,

    die Adressbücher haben ein ziemlich übles Format.

    Dazu (aus https://en.wikipedia.org/wiki/Mork_(file_format) )

    "...the single most braindamaged file format that I have ever seen...".

    Dort sind weitere Quellen verlinkt, die meisten befassen sich mit der Ablösung des Formats.

    Nur, bei TB ist das mit der Weiterentwicklung so eine Sache...

    Aber es gibt vielleicht Hoffnung, in Form des Addons

    Cardbook

    Ich habe es nur mal getestet und für brauchbar befunden, habe es aber aktuell nicht im Einsatz.

    Gruß, muzel

    2 Mal editiert, zuletzt von muzel (22. September 2017 um 13:49) aus folgendem Grund: typo

  • thomasadd
    Mitglied
    Beiträge
    100
    Mitglied seit
    3. Okt. 2006
    • 23. September 2017 um 14:48
    • #3

    Ja Mork wie Murks. Den WIKI-Eintrag kenne ich. Es gibt leider keine ordentliche Beschreibung, wie aus den einzelnen verqueren "Datensätzen" etwas lesbares wird. Ich hatte gehofft, dass schon mal jemand was programmiert hat und weiß, wie der Schrott zu interpretieren ist.

    Mein Problem ist, dass ich aus MS ACCESS heraus Kontakte synchronisieren muss. Also Kontakt aus TB auslesen und auch neue Kontakte in TB anlegen und bestehende Kontakte unter umständen ändern,bzw. Infos ergänzen.

  • generalsync
    Senior-Mitglied
    Reaktionen
    48
    Beiträge
    550
    Mitglied seit
    29. Aug. 2016
    Hilfreiche Antwort
    1
    • 23. September 2017 um 15:48
    • #4
    Zitat von thomasadd

    Also Kontakt aus TB auslesen und auch neue Kontakte in TB anlegen und bestehende Kontakte unter umständen ändern,bzw. Infos ergänzen.

    Was spricht denn dagegen, dafür Thunderbird selbst zu verwenden? Die API ist mäßig intuitiv (lies: gar nicht), aber imho immer noch deutlich angenehmer als manuell in Mork herumzupfuschen. Im Menü unter Extras|Entwickler-Werkzeuge|Fehlerkonsole gibt es ein Ausführen-Feld um mal eben kleinere Dinge zu erledigen. Die eigentlich überlegene Java-Script-Umgebung im selben Menü scheint jedoch nicht zu funktionieren.

    Beispiel: Ein Array von nsIAbDirectory-Objekten für jedes Adressbuch erhält man mit

    Code
    Components.utils.import("resource:///modules/mailServices.js");Components.utils.import("resource:///modules/iteratorUtils.jsm");toArray(fixIterator(MailServices.ab.directories))

    Als "Dokumentation" ist hier der Quelltext von Thunderbird hilfreich. Ein guter Einstieg ist die Deklaration des nsIAbDirectory-Interfaces. Einige Details sind sehr komisch und schlecht dokumentiert, z.B. müssen für Kontakt-Bilder Dateien im Profil angelegt werden, die dann als "Name" des Bildes referenziert werden. Eventuell kann dir dort der Quelltext eines bestehenden Synchronisations-Add-ons helfen. Ich kenne mich naturgemäß nur in der Codebasis von GeneralSync aus, eventuell ist MyPhoneExplorer für einen einmaligen Im- oder Export interessanter (GeneralSync stellt ein eigenes Adressbuch bereit, während MyPhoneExplorer auf bestehende Adressbücher zugreift). Beide Add-ons sind keine freie Software, insofern darf deren Code nicht direkt in eigener Software verwendet werden.

    Ich entwickle unter anderem Synchronisationssoftware für Kalender und Adressbücher – ohne Cloud oder Server.

  • thomasadd
    Mitglied
    Beiträge
    100
    Mitglied seit
    3. Okt. 2006
    • 24. September 2017 um 15:41
    • #5

    Der Beispielcode erzeugt Arrays mit nahezu unendlicher und undurchschaubarer Struktur.

    Das Problem ist, dass alles in VBA innerhalb von Access laufen muss.

    Ich brauche die Möglichkeit, aus VBA heraus auf TB zuzugreifen.

    Ich müsste also ein Objekt erzeugen können, über dass ich auf Eigenschaften und Methoden von TB zugreifen kann.

    Also sowas in der Art

    Code
    Dim tb As New Thunderbird.Application

    Und dann sicher noch weitere derartige Objektdeklarationen und auch Zuweisungen, damit ich an die einzelnen Adressbücher komme.

    Für den Zugriff auf Outlook ist das eine Hand voll Code. Dann habe ich eine Schleife über alle Adressbücher in der ich ich dann wiederum in einer weiteren Schleife alle Kontakte des jeweiligen Adressbuches durchlaufe. Und so, wie das in VBA läuft, funktioniert das in jeder anderen beliebigen Programmiersprache.

    Grundvoraussetzung ist lediglich, dass man die notwendigen Bibliotheken lädt.

    Bei TB habe ich bisher nichts in der Hinsicht gefunden. Weder Bibliotheken, die man laden kann, noch eine Beschreibung.

  • generalsync
    Senior-Mitglied
    Reaktionen
    48
    Beiträge
    550
    Mitglied seit
    29. Aug. 2016
    Hilfreiche Antwort
    1
    • 24. September 2017 um 16:48
    • #6
    Zitat von thomasadd

    Ich brauche die Möglichkeit, aus VBA heraus auf TB zuzugreifen.

    Da muss ich passen, ich kenne mich mit VBA nicht aus. Ich kann mir auch nicht vorstellen, dass eine VBA-Schnittstelle für Thunderbird existiert.

    Bleibt also vermutlich wirklich nur Mork-Parsing (und vorher eine Prüfung ob Thunderbird läuft: das Profil kann nur dann sicher bearbeitet werden, wenn Thunderbird geschlossen ist). Einzige Option die ich mir noch vorstellen könnte, ist die Verwendung von Outlook-spezifischen Funktionen von Thunderbird (Extras|Importieren... erlaubt unter Windows iirc die Verwendung von MAPI, eventuell gibt es auch etwas für die Gegenrichtung). Langfristig könnte man auch über sowohl in Outlook als auch in Thunderbird eingebundene GeneralSync-Addressbücher gehen, aber bis die Outlook-Integration von GeneralSync fertig ist dauert es denke ich noch ein paar Monate.

    Ich entwickle unter anderem Synchronisationssoftware für Kalender und Adressbücher – ohne Cloud oder Server.

  • thomasadd
    Mitglied
    Beiträge
    100
    Mitglied seit
    3. Okt. 2006
    • 25. September 2017 um 17:46
    • #7
    Zitat von generalsync

    Da muss ich passen, ich kenne mich mit VBA nicht aus. Ich kann mir auch nicht vorstellen, dass eine VBA-Schnittstelle für Thunderbird existiert.

    Das hat nichts mit VBA zu tun, sondern das ist eine API-Schnittstelle, die von jeder Programmierspache aus (C++, Java, ...) angesprochen werden kann, wenn die entsprechenden Bibliotheken (DLL, OCX) geladen werden.


    Gruß Thomas

  • generalsync
    Senior-Mitglied
    Reaktionen
    48
    Beiträge
    550
    Mitglied seit
    29. Aug. 2016
    Hilfreiche Antwort
    1
    • 25. September 2017 um 22:39
    • #8
    Zitat von thomasadd

    API-Schnittstelle

    Du meinst vielleicht Microsoft COM (component object model)? Falls ja: Thunderbird nutzt intern das inhaltlich verwandte XPCOM (nicht mit Microsoft's Variante kompatibel, dafür cross-platform). Das Codebeispiel oben nutzt diese Schnittstellen, der Array enthält XPCOM-Objekte.

    Unter Windows bietet Thunderbird darüber hinaus Microsoft's "Simple MAPI" an, eine COM-Schnittstelle für E-Mails (nur Nachrichten, ohne Adressbücher oder Kalender). Mir ist keine COM-basierte Adressbuch-Schnittstelle bekannt (der Importer kann jedoch wie bereits erwähnt Adressbücher via "Extended MAPI" z.B. von Outlook beziehen).

    Ich entwickle unter anderem Synchronisationssoftware für Kalender und Adressbücher – ohne Cloud oder Server.

  • Community-Bot 3. September 2024 um 20:30

    Hat das Thema geschlossen.

Aktuelle Programmversion

  • Thunderbird 139.0.2 veröffentlicht

    Thunder 11. Juni 2025 um 17:31

Aktuelle ESR-Version

  • Thunderbird 128.11.1 ESR veröffentlicht

    Thunder 11. Juni 2025 um 17:27

Keine Werbung

Hier wird auf Werbeanzeigen verzichtet. Vielleicht geben Sie dem Website-Betreiber (Alexander Ihrig - aka "Thunder") stattdessen etwas aus, um diese Seiten auf Dauer finanzieren zu können. Vielen Dank!

Vielen Dank für die Unterstützung!

Kaffee ausgeben für:

Per Paypal unterstützen*

*Weiterleitung zu PayPal.Me

Thunderbird Mail DE
  1. Impressum & Kontakt
  2. Datenschutzerklärung
    1. Einsatz von Cookies
  3. Nutzungsbedingungen
  4. Spendenaufruf für Thunderbird
Hilfe zu dieser Webseite
  • Übersicht der Hilfe zur Webseite
  • Die Suchfunktion benutzen
  • Foren-Benutzerkonto - Erstellen (Neu registrieren)
  • Foren-Thema erstellen und bearbeiten
  • Passwort vergessen - neues Passwort festlegen
Copyright © 2003-2025 Thunderbird Mail DE

Sie befinden sich NICHT auf einer offiziellen Seite der Mozilla Foundation. Mozilla®, mozilla.org®, Firefox®, Thunderbird™, Bugzilla™, Sunbird®, XUL™ und das Thunderbird-Logo sind (neben anderen) eingetragene Markenzeichen der Mozilla Foundation.

Community-Software: WoltLab Suite™