Positives Denken 1 – oder: Wie schreibe ich eine Thunderbirdextension?

Aua. Nun sitze ich schon mindestens 10 Stunden an einer Thunderbirdextension und bin eigentlich noch nirgendwo. Die Aufgabenstellung ist ganz einfach. Es sollen alle Attachments der eingehenden Mails in einem separatem Folder gespeichert werden. Für jeden Dateityp soll ein eigenenes Verzeichnis angegeben werden können. Natürlich sollen auch bestimmte Dateien via einer regular Expression vom Speichern ausgeschlossen werden.Der Attachment Extractor von Andrew Williamson erfüllt fasst die Anforderungen die ich habe – aber eben nur fast. Später habe ich mich auch intensiv mit dem Code von der Extension auseinandergesetzt. Aber bis jetzt noch ohne Erfolg.

Die ersten Schritte sind eigentlich auch gut dokumentiert aber wenn man dann die Thunderbird-eigenen Componenten (XPCOM) zugreifen will wird es esoterisch. Es gibt zwar XULPlanet wo die Schnittstellen aufgelistet werden, aber das reicht bei weitem nicht aus. Es ist ein bischen wie vor einer Glaskugel sitzen: “Kugel auf meinem Tisch… Bitte sage mir, welches Interface brauche ich jetzt für meine Zwecke.”

Wenn man Glück hat, dann findet man auch noch das Richtige. Das Problem ist aber zu wissen, ob es wirklich die Richtige ist, denn woher soll man das wissen ohne Dokumentation der Schnittstelle? Das bei XULPlanet dann nicht alle vorhanden Interfaces aufgeführt sind, ist eine ganz andere Geschichte. Zum Beispiel habe ich nsIMsgFolderNotificationService.idl nur durch einen Post von Wil Clouser gefunden.

Wenn ich es noch schaffe, werdet Ihr es hier erfahren.

Wenigstens gibt es den Thunderbird überhaupt, auch wenn er schwer zu erweitern ist 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s