Mailbox-Fix R130: enableMailboxForExisting statt updateMailboxPassword
Pentester R130: der erste Fix (c39d252) setzte bei Plesk nur -passwd,
liess die Adresse aber auf -mailbox false stehen -> Mailbox wurde nie
aktiviert, IMAP/SMTP-Login scheiterte trotz korrektem Passwort.
Jetzt enableMailboxForExistingEmail (-mailbox true -passwd ...), das
sowohl den existierte-als-Forward-Fall als auch den Neu-Anlage-Fall
idempotent abdeckt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -198,16 +198,21 @@ export async function createEmail(data: CreateEmailData) {
|
||||
throw new Error(result.error || 'Fehler beim Anlegen der Mailbox');
|
||||
}
|
||||
|
||||
// Passwort verbindlich am Postfach setzen. Beim Neu-Anlegen hat
|
||||
// createEmailWithMailbox es zwar schon gesetzt (der folgende Call ist
|
||||
// dann idempotent), ABER wenn die Adresse beim Provider bereits als
|
||||
// reine Weiterleitung existierte, kehrt provisionEmailWithMailbox früh
|
||||
// mit success zurück, ohne je ein Postfach-Passwort zu setzen. Ohne
|
||||
// diesen expliziten Schritt läge im CRM ein verschlüsseltes Passwort,
|
||||
// das der Provider gar nicht kennt → IMAP/SMTP-Login schlägt fehl.
|
||||
// Deshalb: nach jedem Mailbox-Anlegen das generierte Passwort
|
||||
// garantiert am Provider setzen, damit CRM und Provider übereinstimmen.
|
||||
const pwResult = await updateMailboxPassword(localPart, password);
|
||||
// Mailbox verbindlich aktivieren UND Passwort setzen. Beim Neu-Anlegen
|
||||
// hat createEmailWithMailbox das schon getan (der folgende Call ist dann
|
||||
// idempotent), ABER wenn die Adresse beim Provider bereits als reine
|
||||
// Weiterleitung existierte, kehrt provisionEmailWithMailbox früh mit
|
||||
// success zurück, ohne je die Mailbox zu aktivieren. Ohne diesen Schritt
|
||||
// läge im CRM ein verschlüsseltes Passwort, das der Provider gar nicht
|
||||
// kennt → IMAP/SMTP-Login schlägt fehl.
|
||||
//
|
||||
// WICHTIG (Pentest R130): hier MUSS enableMailboxForExistingEmail
|
||||
// verwendet werden, nicht updateMailboxPassword. Letzteres setzt bei
|
||||
// Plesk nur `-passwd`, lässt die Adresse aber auf `-mailbox false`
|
||||
// stehen – die Mailbox wird also nie aktiviert und der Login scheitert
|
||||
// trotz korrektem Passwort. enableMailboxForExisting setzt
|
||||
// `-mailbox true -passwd ...` und deckt beide Fälle idempotent ab.
|
||||
const pwResult = await enableMailboxForExistingEmail(localPart, password);
|
||||
if (!pwResult.success) {
|
||||
throw new Error(
|
||||
pwResult.error || 'Mailbox angelegt, aber Postfach-Passwort konnte nicht gesetzt werden',
|
||||
|
||||
@@ -113,6 +113,11 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
mit success zurück, ohne je ein Postfach-Passwort zu setzen – im CRM lag
|
||||
ein verschlüsseltes Passwort, das der Provider nicht kannte → IMAP/SMTP-
|
||||
Login schlug fehl. Jetzt stimmen CRM und Provider garantiert überein.
|
||||
- **Nachtrag Pentest R130:** Erster Versuch (`updateMailboxPassword`)
|
||||
setzte bei Plesk nur `-passwd`, ließ die Adresse aber auf
|
||||
`-mailbox false` → Mailbox nie aktiviert, Login scheiterte weiter.
|
||||
Jetzt `enableMailboxForExistingEmail` (`-mailbox true -passwd ...`),
|
||||
deckt beide Fälle idempotent ab.
|
||||
- Tab-Leiste bei vielen Tabs: `flex-wrap` statt Overflow aus dem Rahmen.
|
||||
- Referrals: 4 neue Beziehungen + Bearbeiten-Stift pro Eintrag (s.u.).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user