Plesk-Sync: Legacy-Mailgroup-Adressen synchronisierten nicht

Prod-Bug: zusätzliche Weiterleitung eintragen → Toast meldet
Erfolg, Plesk übernimmt nichts. Plesk hat zwei unabhängige
Verteil-Mechanismen, Mailgroup (alte CLI-Anlagen) und Forwarding
(neue). Unser Sync schrieb nur in Forwarding, die alte Adresse
lief aber via Mailgroup → set:-Befehle landeten in ungenutzter
Tabelle. Stage funktionierte, weil dort frisch im Forwarding-
Modus angelegt.

- EmailExistsResult um mailgroupActive/Members + forwardingActive/
  Targets erweitert.
- pleskProvider.emailExists parst alle vier Felder aus --info-
  stdout (Mailgroup: true|false, Group member(s): ..., Forward
  request: ...).
- pleskProvider.updateForwardTargets setzt -mailgroup false dazu –
  deaktiviert den Legacy-Mechanismus.
- syncForwardingForEmail holt vorm Plesk-Update die bestehenden
  Mailgroup-Members und Forwarding-Targets ab und importiert sie
  in unsere additionalForwardingEmails-Liste (canonical-Key-Dedup).
  Verlustfrei – kein Empfänger fällt beim Umschalten raus.

Smoke-Test mit echtem Plesk-stdout (User-Log): 3 Group-Members
sauber geparst, leeres "Forward request" als [] erkannt.
This commit is contained in:
2026-06-18 17:22:08 +02:00
parent 5bb048c534
commit a83358bbe6
4 changed files with 126 additions and 3 deletions
+24
View File
@@ -97,6 +97,30 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
## ✅ Erledigt
- [x] **🐞 Plesk-Sync: Legacy-Mailgroup-Adressen synchronisierten nicht**
- Prod-Bug: User trägt zusätzliche Weiterleitung ein, Toast meldet
Erfolg, aber Plesk übernimmt nichts. Ursache: Plesk hat zwei
Verteil-Mechanismen, **Mailgroup** (alte CLI-Anlagen,
`Group member(s):`) und **Forwarding** (`Forward request:`). Unser
Sync schrieb nur in Forwarding, die Adresse lief aber via Mailgroup
→ unsere `set:`-Befehle landeten in einer ungenutzten Tabelle.
Stage funktionierte, weil dort die Adressen frisch vom CRM angelegt
wurden (Forwarding-Modus von Anfang an).
- `EmailExistsResult` um `mailgroupActive` + `mailgroupMembers` +
`forwardingActive` + `forwardingTargets` erweitert.
- `pleskProvider.emailExists` parst alle vier Felder aus dem
`--info`-stdout (`Mailgroup: true|false`, `Group member(s): ...`,
`Forward request: ...`).
- `pleskProvider.updateForwardTargets` setzt jetzt zusätzlich
`-mailgroup false`, damit der Legacy-Mechanismus deaktiviert wird
und nur noch Forwarding aktiv ist.
- `syncForwardingForEmail`: vor dem Plesk-Update werden bestehende
Mailgroup-Members + Forwarding-Targets abgeholt und in unsere
`additionalForwardingEmails`-Liste **importiert** (canonical-Key-
Dedup). Verlustfrei kein bestehender Empfänger fällt beim
Umschalten auf Forwarding raus. Import-Fehler werden geloggt,
aber der eigentliche Sync läuft trotzdem.
- [x] **🔒 Pentest 81.1 (MEDIUM): Self-Forward erzeugte Mail-Loop am Provider**
- Bug: User konnte die Stressfrei-Adresse selbst (z.B.
`max.mustermann@stressfrei-wechseln.net`) als zusätzliches