=====================================================================
 Strandmoellen Gase-App - Outlook-AutoSend-Watcher  (Version 1.2.1)
=====================================================================

Was macht das?
--------------
AUSGEHEND:
Immer wenn du in der Gase-App auf "Ueber Outlook senden" klickst, laedt
der Browser eine Datei "gase-<Nummer>-<Firma>.eml" in deinen
Downloads-Ordner. Der Watcher erkennt die Datei, oeffnet sie mit Outlook
und verschickt sie sofort an den Empfaenger. Danach meldet er den
Versand an die App zurueck.

EINGEHEND (ab v1.1.0, erweitert in v1.2.0):
Der Watcher prueft zusaetzlich alle 2 Minuten deinen Outlook-Posteingang.
Antwortet einer deiner Akquise-Empfaenger, meldet der Watcher den
Treffer an die Gase-App und der zugehoerige Vorgang wandert automatisch
in die Kanban-Spalte "Rueckmeldung".

Drei-stufiges Matching (seit v1.2.0):
  1. THREAD-HEADER: Antwortet der Kontakt auf deine Mail, stimmen die
     Header In-Reply-To / References mit der Message-ID ueberein, die
     die Gase-App beim Versand vergeben hat - das ist ein *harter*,
     eindeutiger Treffer (auch wenn die Mail von einem anderen
     Postfach oder Kollegen beantwortet wird).
  2. ABSENDER: Falls kein Thread-Header gefunden wurde, wird wie bisher
     die Absenderadresse mit dem Empfaenger des Vorgangs verglichen
     (case-insensitive).
  3. DOMAIN-FALLBACK: Passt nur die Domain (z.B. info@firma.de
     antwortet statt m.meier@firma.de), landet die Antwort in der
     Unclear-Queue der App. Du ordnest sie dort per Klick dem
     richtigen Vorgang zu.

Das Backend entscheidet - der Watcher schickt lediglich die Header
und den Absender mit, nichts wird lokal interpretiert.

NEU IN v1.2.1 (Bug #122 - Hotfix)
---------------------------------
- Set-ExecutionPolicy-Aufruf in setup.bat entfernt (war auf
  gemanagten Notebooks rot, obwohl alles ok war).
- Bei Group-Policy-Sperren auf "schtasks /Create" springt der
  Installer automatisch auf eine Startup-Folder-Verknuepfung um.
  Beide Varianten sind funktional aequivalent.
- uninstall.bat raeumt jetzt auch laufende Prozesse + die
  Startup-Verknuepfung mit weg.

Voraussetzungen
---------------
- Windows 10 oder 11
- Microsoft Outlook (Desktop, Version 16.x oder neuer)
- KEINE Administrator-Rechte noetig.

Installation (Neuinstallation)
------------------------------
1. Entpacke diese ZIP-Datei in einen beliebigen Ordner (z. B. den
   Desktop oder Dokumente\Strandmollen-Setup).
2. Oeffne den Ordner und starte "setup.bat" mit einem Doppelklick.
3. Du wirst NICHT nach dem Admin-Passwort gefragt.
4. Am Ende des Installer-Outputs siehst du, ueber welchen Mechanismus
   der Watcher beim Login startet:
       Autostart  : Geplanter Task "StrandmollenAutoSend"
   ODER (auf gesperrten Notebooks)
       Autostart  : Startup-Folder-Verknuepfung
5. Schau in der Gase-App im App-Header: das Watcher-Laempchen oben
   rechts sollte nach spaetestens 60 Sekunden gruen sein.

Update von v1.2.0 auf v1.2.1
----------------------------
1. uninstall.bat aus dem alten Setup-Ordner ausfuehren (Ordner darf
   bleiben, Konfig bleibt erhalten).
2. Neue ZIP entpacken, setup.bat per Doppelklick.

Update von v1.1.x auf v1.2.1
----------------------------
1. Watcher beenden (Aufgabenplanung -> "StrandmollenAutoSend" stoppen
   ODER den Laptop einmal neu starten).
2. setup.bat ausfuehren - die alte Version wird ueberschrieben,
   deine Konfig (autosend.config.json) und der Inbox-Cache bleiben
   erhalten.
3. Fertig. Im Log-File (%APPDATA%\Strandmollen\logs) erscheint jetzt:
      StrandmollenAutoSend Watcher v1.2.1 gestartet

Was passiert im Hintergrund?
----------------------------
- PowerShell-Skript wird nach %APPDATA%\Strandmollen\ kopiert.
- Autostart wird wahlweise per Aufgabenplanung ODER per Verknuepfung
  im Startup-Ordner eingerichtet (siehe Installer-Output).
- Log-Dateien liegen unter %APPDATA%\Strandmollen\logs
- Versendete .eml-Dateien wandern ins Unterverzeichnis "processed",
  damit nichts verloren geht (Audit).
- Verarbeitete Inbox-EntryIds werden in
  %APPDATA%\Strandmollen\processed-inbox.txt gemerkt, damit keine
  Rueckmeldung doppelt gezaehlt wird.

Deinstallation
--------------
Starte "uninstall.bat" aus demselben Ordner. Sowohl der Task als
auch die Startup-Verknuepfung werden entfernt; laufende
Watcher-Prozesse werden sauber beendet. Logs und Konfig bleiben
erhalten (du kannst sie im Dialog auch loeschen lassen).

Troubleshooting
---------------
- "Outlook COM konnte nicht initialisiert werden": Outlook ist nicht
  installiert oder startet nicht. Bitte Outlook einmal manuell oeffnen.
- "Watcher aktiv - aber Dialog sagt 'inaktiv'": Firewall blockiert den
  Ping-Request an die App. Einmal die Gase-App im Browser aufrufen und
  den Zugriff bestaetigen; dann laeuft auch HTTPS an dieselbe URL.
- "550 Relay not permitted": Du hast wahrscheinlich noch die alte
  SMTP-Variante verwendet. Nutze den "Ueber Outlook senden"-Button.
- Inbox-Match bleibt aus: Stelle sicher, dass der Absender der
  Antwort-Mail in derselben Domain liegt wie der Vorgangs-Empfaenger.
  Antworten aus fremder Domain landen nicht im Matching.
- "Inbox-Match unklar": Die Antwort kam aus derselben Domain, aber von
  einer anderen Adresse. In der App unter "Vorgaenge" -> "Unklare
  Rueckmeldungen" kannst du sie dem richtigen Vorgang zuordnen.
- Watcher startet nach Login nicht: Schau im Installer-Output, welcher
  Autostart-Modus aktiv ist. Bei "Geplanter Task" hilft die
  Aufgabenplanung (Task "StrandmollenAutoSend"). Bei
  "Startup-Folder-Verknuepfung" liegt die Verknuepfung in
  shell:startup (Win+R -> shell:startup eingeben).

Sicherheit / Datenschutz
------------------------
- Das Token in autosend.config.json ist individuell fuer deine Instanz
  der Gase-App generiert. Gib die ZIP-Datei NICHT weiter.
- Die Konfig liegt unter %APPDATA% und ist nur fuer deinen
  Windows-Benutzer lesbar.
- Der Watcher verschickt nur .eml-Dateien, deren Name mit "gase-" beginnt
  und eine gueltige LogId enthaelt.
- An das Backend gehen nur Mails, deren Absender ODER Absender-Domain
  zu einer offenen Akquise passt. Alle anderen Mails bleiben lokal
  und werden nicht uebertragen (nur die EntryId wird im Cache gemerkt).
- Der Watcher liest den Outlook-Posteingang nur per Outlook-COM, nimmt
  keine Aenderungen an Nachrichten vor und verschiebt keine Mails.
