Plesk updateForwardTargets: CLI-Params + Response loggen

Sync zeigt im Prod-Log nur emailExists, kein update – entweder läuft
der Update-Code nicht durch oder Plesk lehnt ihn ab und wir sehen
es nicht (try/catch hat alles geschluckt).

CLI-Params vor dem Call loggen + Plesk-Response vollständig dumpen.
Zusätzlich Response auf code != 0 / stderr-Error prüfen statt
pauschal success=true zurückzugeben.
This commit is contained in:
2026-06-18 18:07:12 +02:00
parent 24e152b201
commit 2becf6cb6a
@@ -507,14 +507,26 @@ export class PleskEmailProvider implements IEmailProvider {
// Mails landen weiterhin bei den Mailgroup-Members. // Mails landen weiterhin bei den Mailgroup-Members.
// Der Service-Layer importiert vorher die Mailgroup-Members in die // Der Service-Layer importiert vorher die Mailgroup-Members in die
// `targets`-Liste, damit beim Umschalten nichts verloren geht. // `targets`-Liste, damit beim Umschalten nichts verloren geht.
await this.request('POST', '/api/v2/cli/mail/call', { const cliParams = [
params: [ '--update', email,
'--update', email, '-mailgroup', 'false',
'-mailgroup', 'false', '-forwarding', 'true',
'-forwarding', 'true', '-forwarding-addresses', `set:${targets.join(',')}`,
'-forwarding-addresses', `set:${targets.join(',')}`, ];
], console.log('[Plesk updateForwardTargets] CLI params:', cliParams);
}); const result = await this.request<{ code: number; stdout: string; stderr: string }>(
'POST',
'/api/v2/cli/mail/call',
{ params: cliParams },
);
console.log('[Plesk updateForwardTargets] response:', JSON.stringify(result, null, 2));
if (result.code !== 0 || /error|failed/i.test(result.stderr || '')) {
return {
success: false,
error: result.stderr?.trim() || result.stdout?.trim() || `Plesk returned code ${result.code}`,
};
}
return { return {
success: true, success: true,