thunderbird2docuware/README.md
sylyx 2befbb042b DocuWare Ablage – Thunderbird-Extension v0.8.0
Thunderbird-MailExtension zum Ablegen von E-Mails in DocuWare
  (.eml + PDF + Anhänge), dynamische Indexfelder aus dem Store-Dialog,
  Auswahllisten, Identity-Service-Login. Self-distribution-Updates
  über updates.json auf eigenem Gitea.
2026-06-03 13:15:59 +02:00

109 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# DocuWare Ablage Thunderbird-Extension
Legt eine markierte E-Mail aus Thunderbird in DocuWare ab. Nach Klick auf den Button
erscheint ein **Ablage-Dialog**: Aktenschrank wählen, Indexfelder ausfüllen (aus der
Mail vorbefüllt), ablegen. Hochgeladen werden je nach Auswahl die Mail als `.eml`,
die Mail als PDF und die Anhänge als separate Dokumente.
## Funktionsweise
- **Direkte Anbindung** an die DocuWare **Platform REST-API** (kein eigener Server).
Auth v1 per **Cookie-Logon** (`/Account/Logon`).
- **Dynamische Felder**: Die Eingabemaske wird aus dem *Store-Dialog* des gewählten
Schranks erzeugt (Felder, Pflichtfelder, Auswahllisten).
- **Vorbefüllung** der `EML_*`-Felder aus der Mail (Absender, Empfänger, Betreff,
Datum, Richtung, Größe, Body …).
## Projektstruktur
```
manifest.json MailExtension-Manifest (Manifest v2)
background/background.js Button + Kontextmenü, öffnet den Dialog
dialog/ Ablage-Dialog (HTML/CSS/JS)
options/ Einstellungen (Server, Login, Defaults)
lib/
store.js Einstellungen (browser.storage.local)
auth.js Cookie-Logon (Auth-Abstraktion)
docuware.js Platform-REST-Client (Schränke, Dialoge, Felder, Upload)
mail.js Mail-Extraktion (eml, Metadaten, Anhänge)
pdf.js abhängigkeitsfreier Text-PDF-Generator
icons/
```
## Installation (Entwicklung)
1. Thunderbird → Menü → **Add-ons und Themes** → Zahnrad → **Add-on aus Datei
installieren …** *oder* zum Testen:
2. Adresszeile: `about:debugging`**Dieses Thunderbird** → **Temporäres Add-on
laden …** → `manifest.json` in diesem Ordner wählen.
> Hinweis: Bei einem Self-Signed-Zertifikat des DocuWare-Servers muss dieses einmalig
> in Thunderbird akzeptiert werden, sonst schlagen die `fetch`-Aufrufe fehl.
## Einrichtung
Add-on-Einstellungen öffnen und ausfüllen:
- **Server-URL** Basis ohne `/DocuWare/Platform`, z.B. `https://docuware.firma.de`
- **Organisation**, **Benutzername**, **Passwort**
- **Verbindung testen** → lädt die Aktenschränke (Bestätigung, dass Login & URL passen)
- optional **Standard-Aktenschrank** und Default-Optionen (eml/pdf/Anhänge)
> ⚠️ Das Passwort wird unverschlüsselt in `storage.local` gespeichert (v1). Für den
> Produktiveinsatz sollte auf den DocuWare Identity Service / OAuth umgestellt werden
> (`lib/auth.js` ist dafür gekapselt).
## Benutzung
1. E-Mail öffnen → Button **„In DocuWare ablegen"** (oder Rechtsklick in der
Nachrichtenliste → *In DocuWare ablegen*).
2. Aktenschrank wählen → Felder prüfen/ergänzen (Pflichtfelder mit `*`).
3. Auswählen, was abgelegt wird (eml / PDF / Anhänge).
4. **Ablegen**. Bei Erfolg wird die Mail optional mit dem Tag *DocuWare* markiert.
## Verifikation (End-to-End)
Gegen den **Test-Schrank `LL_TEST_BELEGE`** ablegen, dann per DocuWare-MCP gegenprüfen:
- `docuware_search` (file_cabinet_name `LL_TEST_BELEGE`, query = Betreff) → Treffer?
- `docuware_get_document` → Indexfelder (`EML_SENDER`, `EML_SUBJECT`, …) korrekt?
- `docuware_download_document``.eml`/PDF herunterladen & prüfen
- Anhänge erscheinen als eigene Dokumente
- Aufräumen: `docuware_delete_document` (nur im Test-Schrank!)
## Verteilung & automatische Updates (eigenes Gitea, nicht öffentlich)
Das Add-on wird **nicht** öffentlich auf addons.thunderbird.net gelistet, sondern
über AMO als **„Selbstständig" (self-distribution)** signiert und über dein eigenes
Gitea verteilt + aktualisiert.
> Im XPI und in `updates.json` stehen **keine** Zugangsdaten. Das DocuWare-Passwort
> liegt ausschließlich lokal in `storage.local` und wird nie mitverteilt.
**Einmalige Einrichtung:**
1. In `manifest.json``applications.gecko.update_url` die Domain `GITEA.EXAMPLE.DE`
durch deine (HTTPS-)Gitea-Adresse ersetzen. **HTTPS ist Pflicht** (TB lehnt HTTP ab).
2. `updates.json` ebenfalls auf deine Gitea-URLs anpassen und in dein Repo committen
(erreichbar unter der `update_url`, z.B. via *raw*-Link auf `main`).
**Bei jedem neuen Release:**
1. `version` in `manifest.json` erhöhen (z.B. `0.8.0``0.8.1`).
2. XPI bauen (`manifest.json` muss im Archiv-Wurzelverzeichnis liegen).
3. XPI bei AMO hochladen → **„Selbstständig"** wählen → **signiertes** XPI herunterladen.
4. Signiertes XPI als Release-Anhang in Gitea hochladen (passend zum `update_link`).
5. In `updates.json` einen neuen Eintrag mit `version` + `update_link` ergänzen,
committen/pushen.
Thunderbird prüft die `update_url` periodisch und aktualisiert automatisch auf die
neueste dort gelistete Version.
## Bekannte Grenzen / nächste Schritte
- **PDF** ist v1 ein einfaches Text-PDF (Kopf + Klartext-Body) ohne HTML-Layout/Bilder.
- **Auth** nur Cookie-Logon; OAuth/Identity Service noch nicht implementiert.
- **Upload-Multipart-Format** ggf. je nach DocuWare-Version anpassen
(`docuware.js → uploadDocument`).
- Mehrfachauswahl von Mails: aktuell wird die erste markierte Mail abgelegt.