HPS Vorlagen & Signaturen

Thunderbird-Plugin (v2.2.0) zur zentralen Verwaltung von E-Mail-Vorlagen und Signaturen für Hotel Park Soltau. Vorlagen und Signaturen werden über ein Gitea/Forgejo-Repository synchronisiert und stehen so allen Mitarbeitern zur Verfügung.

Features

  • E-Mail-Vorlagen erstellen, bearbeiten und per Klick in Compose-Fenster einfügen
  • 3 Sichtbarkeitsstufen pro Vorlage:
    • Persönlich — nur für den eigenen Account, gesynct in _benutzer/{email}/
    • Abteilung — für alle in der Abteilung, gesynct in den Abteilungsordner
    • Alle Abteilungen — firmenweit, gesynct in _gemeinsam/
  • Signaturen-Verwaltung mit persönlichem Kopfbereich + gemeinsamer Fußzeile pro Abteilung
  • Git-Sync über Gitea/Forgejo API (Pull + Push, automatisch alle 15 Min.)
  • Auto-Erkennung von Abteilung und Benutzer via _config/abteilungen.json
  • WYSIWYG-Editor mit Schriftart, Farben, Listen, Bildern, Links
  • Sichtbarkeit direkt änderbar per klickbarem Badge in der Vorlagenliste

Repository-Struktur (Gitea)

repo/
├── _gemeinsam/                  # Vorlagen für alle Abteilungen
│   └── beispiel-vorlage.html
├── _benutzer/                   # Persönliche Vorlagen pro User
│   ├── max@hotel-park-soltau.de/
│   └── anna@hotel-park-soltau.de/
├── _config/
│   └── abteilungen.json         # E-Mail → Abteilung Mapping
├── Rezeption/                   # Abteilungsvorlagen
├── IT/
├── signatures/
│   ├── headers/                 # Persönliche Signatur-Köpfe
│   │   └── max@hotel.de.max-mustermann.html
│   └── footers/                 # Gemeinsame Fußbereiche
│       └── Rezeption.html

_config/abteilungen.json

Mapping von Abteilungs-E-Mail-Adressen zu Ordnernamen. Wird vom Plugin gelesen, um Abteilung und persönliche E-Mail automatisch zu erkennen:

{
  "info@hotel-park-soltau.de": "Rezeption",
  "veranstaltungs@hotel-park-soltau.de": "Veranstaltungsbuero",
  "it@hotel-park-soltau.de": "IT",
  "haustechnik@hotel-park-soltau.de": "Haustechnik"
}

Plugin-Aufbau

Datei Funktion
manifest.json Extension-Manifest (Thunderbird WebExtension v2)
background.js Template-Insertion ins Compose-Fenster
popup.html / popup.js Popup beim Klick auf "Vorlagen" im Compose
lib/gitea-sync.js Gitea-API-Client + Sync-Manager
lib/mdi/ Material Design Icons (Subset)
templates_options/ Einstellungsseite (Vorlagen, Signaturen, Verbindung)
defaults.local.json Optionale vorkonfigurierte Verbindungsdaten (gitignored)

Installation

Lokal (Entwicklung)

  1. Thunderbird öffnen
  2. Extras → Add-ons und Themes
  3. Zahnrad-Icon → Add-on aus Datei installieren
  4. templates-reply-hotel.xpi auswählen

XPI bauen

# Ohne vorkonfigurierte Verbindungsdaten:
7z a templates-reply-hotel.xpi manifest.json background.js popup.html popup.js lib/ templates_options/ icons/

# Mit vorkonfigurierten Verbindungsdaten (für Deployment):
7z a templates-reply-hotel.xpi manifest.json background.js popup.html popup.js lib/ templates_options/ icons/ defaults.local.json

Vorkonfigurierte Verbindungsdaten (defaults.local.json)

Wenn eine defaults.local.json im Plugin-Root existiert und in die XPI eingebaut wird, werden die Verbindungsdaten beim ersten Start automatisch gesetzt. Der User muss dann nur noch "Verbindung speichern" klicken.

{
  "baseUrl": "https://git.example.com",
  "owner": "organisation",
  "repo": "email-vorlagen",
  "branch": "main",
  "token": "dein-api-token"
}

Die Datei ist in .gitignore — Tokens landen nicht im Repository.

Einrichtung

  1. Verbindung konfigurieren: Einstellungen-Tab (⚙) → Server-URL, Repository, Token eingeben → Verbindung speichern (entfällt bei vorkonfigurierter XPI)
  2. Abteilung wählen (oder automatisch erkannt via abteilungen.json)
  3. Vorlagen erstellen: Vorlagen-Tab → Neue Vorlage → Sichtbarkeit wählen → Speichern
  4. Signaturen einrichten: Signaturen-Tab → Identität wählen → Kopfbereich bearbeiten → Speichern

Voraussetzungen

  • Mozilla Thunderbird >= 109.0
  • Gitea/Forgejo-Server mit API-Zugang
  • API-Token mit Repository-Schreibrechten

Lizenz

MIT License

Description
No description provided
Readme GPL-3.0 4 MiB
Languages
JavaScript 69.6%
HTML 29.3%
CSS 1.1%