diff --git a/backend/src/controllers/consent-public.controller.ts b/backend/src/controllers/consent-public.controller.ts
index 05cedcc1..7878a03e 100644
--- a/backend/src/controllers/consent-public.controller.ts
+++ b/backend/src/controllers/consent-public.controller.ts
@@ -3,6 +3,8 @@ import * as consentPublicService from '../services/consent-public.service.js';
import { createAuditLog } from '../services/audit.service.js';
import { CONSENT_TYPE_LABELS } from '../services/consent.service.js';
import { ConsentType } from '@prisma/client';
+import { sendEmail } from '../services/smtpService.js';
+import { getSystemEmailCredentials } from '../services/emailProvider/emailProviderService.js';
/**
* Öffentliche Consent-Seite: Kundendaten + Datenschutztext + Status
@@ -76,6 +78,66 @@ export async function grantAllConsents(req: Request, res: Response) {
}
}
+ // Bestätigungs-E-Mail senden
+ if (customer?.customer.email) {
+ try {
+ const systemEmail = await getSystemEmailCredentials();
+ if (systemEmail) {
+ const consentList = Object.values(ConsentType)
+ .map(t => CONSENT_TYPE_LABELS[t]?.label || t)
+ .map(label => `
${label}`)
+ .join('');
+
+ const confirmationHtml = `
+
+
Bestätigung Ihrer Einwilligungen
+
Sehr geehrte(r) ${customer.customer.firstName} ${customer.customer.lastName},
+
+ vielen Dank! Hiermit bestätigen wir, dass Sie am ${new Date().toLocaleDateString('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' })}
+ folgenden Einwilligungen zugestimmt haben:
+
+
+
+ Sie können Ihre Einwilligungen jederzeit über Ihr Kundenportal widerrufen.
+
+
+
+ Hacker-Net Telekommunikation – Stefan Hacker
+ Am Wunderburgpark 5b, 26135 Oldenburg
+ info@hacker-net.de
+
+
+ `;
+
+ await sendEmail(
+ {
+ host: systemEmail.smtpServer,
+ port: systemEmail.smtpPort,
+ user: systemEmail.emailAddress,
+ password: systemEmail.password,
+ encryption: systemEmail.smtpEncryption,
+ allowSelfSignedCerts: systemEmail.allowSelfSignedCerts,
+ },
+ systemEmail.emailAddress,
+ {
+ to: customer.customer.email,
+ subject: 'Bestätigung Ihrer Datenschutz-Einwilligungen',
+ html: confirmationHtml,
+ },
+ {
+ context: 'consent-confirmation',
+ customerId: customer.customer.id,
+ }
+ );
+ }
+ } catch (emailError) {
+ // E-Mail-Fehler soll den Consent-Grant nicht blockieren
+ console.error('Bestätigungs-E-Mail konnte nicht gesendet werden:', emailError);
+ }
+ }
+
res.json({ success: true, data: results });
} catch (error: any) {
console.error('Fehler beim Erteilen der Einwilligungen:', error);
diff --git a/backend/todo.md b/backend/todo.md
index 588adf77..062fdfe3 100644
--- a/backend/todo.md
+++ b/backend/todo.md
@@ -48,9 +48,12 @@ Geburtstagskalender, und Geburtgsgruß als Modal beim ersten Login an dem Tag,
Sollte der Login bis n7 btage nach Geburtsag sein dann Glückwunsch nachträglich
#
+#erledigt
+Bei der Email datenschutzerklärung erst wenn alle hebel drin sind, auf einen bestätigungsbutton klicken, um sicherzustellen, das alle heben drin sind.
+Danch bestätigen, nochmals eine Bestätigiguns emails enden.
+
+Denn jetzt kann der Kudne auch nur einen Haken auslassen, das würd uns aber nichts bringen.
-Email datenschutzerklärung erst wenn alle hebel drin sind, auf einen bestätigungsbutton klicken, um sicherzustellen, das alle heben drin sind.
-Danch bestätigen, nochmals eine Bestätigiguns emails enden
#
Haben wir bei den Vertragen (also alle) kein Dokumentfeld zum Upload von, Auftragsformular, Lieferbestätigung, Vertragsunterlagen.
diff --git a/frontend/src/pages/public/ConsentPage.tsx b/frontend/src/pages/public/ConsentPage.tsx
index 768a338f..ed4d5654 100644
--- a/frontend/src/pages/public/ConsentPage.tsx
+++ b/frontend/src/pages/public/ConsentPage.tsx
@@ -127,7 +127,7 @@ export default function ConsentPage() {
Vielen Dank!
- Ihre Einwilligungen wurden erfolgreich gespeichert.
+ Ihre Einwilligungen wurden erfolgreich gespeichert. Sie erhalten in Kürze eine Bestätigung per E-Mail.