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',
|
||||
|
||||
Reference in New Issue
Block a user