Stressfrei-Adressen: zusätzliche Weiterleitungsziele

Pro StressfreiEmail können jetzt weitere Weiterleitungs-Adressen
gepflegt werden, die zusätzlich zur Stamm-E-Mail des Kunden und
zur globalen Default-Forward-Adresse an den Provider gepusht werden.

- Schema: StressfreiEmail.additionalForwardingEmails (TEXT/JSON-
  Array), Migration mit IF NOT EXISTS.
- syncForwardingForEmail liest die Zusatzliste mit und filtert
  Duplikate gegen customer.email + config.defaultForwardEmail
  (case-insensitive) raus.
- Neuer Endpoint PUT /api/stressfrei-emails/:id/additional-forwards
  mit Body { emails: string[] } – ersetzt die Liste komplett und
  syncht den Provider direkt nach. Hard-Cap 20 Adressen, Format-
  Validation per Regex, Audit-Log.
- Frontend: Button "Weitere Weiterleitungen" im Edit-Modus des
  StressfreiEmailModals (erscheint sobald die Adresse beim Provider
  vorhanden ist). Sub-Modal mit Liste + Add/Remove, Änderungen
  gehen sofort live.
This commit is contained in:
2026-06-18 10:58:14 +02:00
parent 60851450f6
commit 36beac98c9
8 changed files with 363 additions and 8 deletions
+10
View File
@@ -369,6 +369,8 @@ export interface StressfreiEmail {
isActive: boolean;
isProvisioned?: boolean;
hasMailbox: boolean;
/** Zusätzliche Weiterleitungs-E-Mails als JSON-Array-String. */
additionalForwardingEmails?: string | null;
createdAt: string;
updatedAt: string;
}
@@ -537,6 +539,14 @@ export const stressfreiEmailApi = {
}>>(`/stressfrei-emails/${id}/sync-forwarding`);
return res.data;
},
// Zusätzliche Weiterleitungs-Adressen ersetzen + sofort am Provider syncen.
updateAdditionalForwards: async (id: number, emails: string[]) => {
const res = await api.put<ApiResponse<{ forwardTargets: string[] }>>(
`/stressfrei-emails/${id}/additional-forwards`,
{ emails },
);
return res.data;
},
// E-Mails synchronisieren
syncEmails: async (id: number, fullSync = false) => {
const res = await api.post<ApiResponse<SyncResult>>(`/stressfrei-emails/${id}/sync`, {}, { params: { full: fullSync } });