Compare commits

...
2 Commits
Author SHA1 Message Date
ClaudeandClaude Opus 5.5 8fa7cc3db7 Datenschutz: E-Mail jetzt bei Hetzner statt Porkbun (Stand 27.09.2026)
Abschnitt 8 nennt Hetzner als E-Mail-Dienst (Deutschland, AV-Vertrag);
Porkbun nur noch als bisheriger Dienst, bis aeltere E-Mails dort geloescht
sind. Empfaengerliste entsprechend, PDF neu erzeugt.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:14:27 +00:00
ClaudeandClaude Opus 5.5 60baeb3271 Mailversand: Antwortadresse, Absendername WEBklar, nur mit STARTTLS
- SMTP_REPLY_TO (z. B. support@webklar.com) setzt Reply-To auf allen
  Kundenmails, damit Antworten nicht im Versandpostfach (noreply@) landen
- Absendername einheitlich "WEBklar" (Kunden) bzw. "WEBklar Kundenbereich"
  (interne Hinweise) statt "Webklar"/"Webklar Kundenportal"
- requireTLS auf Port 587: der neue Mailserver (Hetzner) nimmt die
  Anmeldung auch unverschluesselt an; ohne STARTTLS wird jetzt nicht gesendet

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 12:12:37 +00:00
4 changed files with 14 additions and 8 deletions

No files matched your search

Binary file not shown.
+6 -5
View File
@@ -44,7 +44,7 @@
<div class="brand">WEBKLAR</div>
<h1>Datenschutzerklärung</h1>
<p class="meta">Stand 26.09.2026</p>
<p class="meta">Stand 27.09.2026</p>
<p>Hier erfahren Sie, welche personenbezogenen Daten wir verarbeiten, wenn Sie unsere Websites besuchen, unser Kundenportal nutzen oder mit uns einen Vertrag schließen, und welche Rechte Sie haben.</p>
@@ -88,8 +88,9 @@
<p id="uebernahmegutschrift">Beantragen Sie im Kundenportal eine Übernahmegutschrift, verarbeiten wir Ihre Angaben zum bisherigen Anbieter (Anbieter, Leistung, Domain, Rechnungsbetrag, bezahlter Zeitraum), Ihre Nachricht, die hochgeladenen Nachweise wie Rechnung oder Kündigungsbestätigung, die E-Mail-Adresse für unsere Antwort sowie Zeitpunkt und IP-Adresse Ihrer Bestätigung. Die Nachweise speichern wir auf unserem Server; unsere Mitarbeiter erhalten per E-Mail nur einen Hinweis auf den Antrag. Zur Prüfung fragen wir die öffentlichen DNS-Einträge der angegebenen Domain ab (Nameserver, Mailserver, IP-Adresse). Eine genehmigte Gutschrift buchen wir bei Stripe als Guthaben auf Ihr Kundenkonto. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO, für den Nachweis Ihrer Bestätigung Art. 6 Abs. 1 lit. f DSGVO. Nachweise zu abgelehnten Anträgen löschen wir sechs Monate nach der Entscheidung. Bei genehmigten Anträgen sind Antrag und Nachweise Beleg für die Gutschrift und werden wie in Abschnitt 9 beschrieben aufbewahrt.</p>
<h2>8. E-Mail</h2>
<p>Vertragsbestätigungen, Benachrichtigungen und unsere sonstige Korrespondenz versenden und empfangen wir derzeit über den E-Mail-Dienst der Porkbun LLC, 11575 SW Pacific Hwy PMB 40649, Tigard, OR 97223, USA. Dabei werden Inhalte und Verbindungsdaten der E-Mails in den USA verarbeitet. Für Porkbun besteht kein Angemessenheitsbeschluss der EU-Kommission. Die Übermittlung erfolgt, soweit sie zur Durchführung eines Vertrags mit Ihnen oder zur Beantwortung Ihrer Anfrage erforderlich ist (Art. 49 Abs. 1 lit. b DSGVO). Wir stellen unseren E-Mail-Dienst in Kürze auf die Hetzner Online GmbH (Rechenzentrum Nürnberg, Deutschland) um.</p>
<p>Die Übertragung ist verschlüsselt. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO, bei sonstiger Korrespondenz lit. f DSGVO. Die E-Mail-Postfächer, die wir Kunden im Rahmen des Wartungs-Abos bereitstellen, liegen bereits bei der Hetzner Online GmbH in Deutschland.</p>
<p>Vertragsbestätigungen, Benachrichtigungen und unsere sonstige Korrespondenz versenden und empfangen wir über den E-Mail-Dienst der Hetzner Online GmbH, Industriestraße 25, 91710 Gunzenhausen. Die Postfächer liegen in Rechenzentren in Deutschland. Mit Hetzner haben wir einen Vertrag über die Auftragsverarbeitung geschlossen.</p>
<p>Die Übertragung ist verschlüsselt. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO, bei sonstiger Korrespondenz lit. f DSGVO. Auch die E-Mail-Postfächer, die wir Kunden im Rahmen des Wartungs-Abos bereitstellen, liegen bei der Hetzner Online GmbH in Deutschland.</p>
<p>Bis September 2026 nutzten wir den E-Mail-Dienst der Porkbun LLC, 11575 SW Pacific Hwy PMB 40649, Tigard, OR 97223, USA. Für Porkbun besteht kein Angemessenheitsbeschluss der EU-Kommission. Die Übermittlung erfolgte, soweit sie zur Durchführung eines Vertrags mit Ihnen oder zur Beantwortung Ihrer Anfrage erforderlich war (Art. 49 Abs. 1 lit. b DSGVO). Ältere E-Mails, die dort noch gespeichert sind, übertragen wir zu Hetzner und löschen sie anschließend bei Porkbun.</p>
<h2>9. Buchhaltung und Rechnungen</h2>
<p>Rechnungen erstellen wir mit einer Buchhaltungssoftware, die wir selbst auf unserem Server betreiben, bzw. für das Wartungs-Abo über Stripe. Soweit erforderlich, geben wir Buchhaltungsdaten an unsere Steuerberatung und an Finanzbehörden weiter. Rechtsgrundlage ist Art. 6 Abs. 1 lit. c DSGVO.</p>
@@ -103,9 +104,9 @@
<h2>12. Empfänger im Überblick</h2>
<ul>
<li>Hetzner Online GmbH: Hosting und Datensicherung (Auftragsverarbeiter)</li>
<li>Hetzner Online GmbH: Hosting, E-Mail und Datensicherung (Auftragsverarbeiter)</li>
<li>Stripe: Zahlungsabwicklung (Abschnitt 7)</li>
<li>Porkbun LLC: unser E-Mail-Dienst bis zur Umstellung (Abschnitt 8)</li>
<li>Porkbun LLC: bisheriger E-Mail-Dienst, nur noch bis zur Löschung älterer E-Mails (Abschnitt 8)</li>
<li>Domain-Registrar und Vergabestellen, sofern wir eine Domain für Sie registrieren (Abschnitt 10)</li>
<li>Steuerberatung und Behörden, soweit gesetzlich erforderlich</li>
</ul>
+2
View File
@@ -141,6 +141,8 @@ export const config = {
user: process.env.SMTP_USERNAME || '',
pass: process.env.SMTP_PASSWORD || '',
from: process.env.SMTP_FROM || process.env.SMTP_USERNAME || '',
// Antworten auf Kundenmails landen hier statt im Versandpostfach (noreply@)
replyTo: process.env.SMTP_REPLY_TO || '',
},
chatNotify: {
+6 -3
View File
@@ -10,6 +10,8 @@ function getTransporter() {
host: config.smtp.host,
port: config.smtp.port,
secure: config.smtp.secure,
// Port 587: ohne STARTTLS nicht senden (Hetzner erlaubt die Anmeldung auch unverschluesselt)
requireTLS: !config.smtp.secure,
auth: { user: config.smtp.user, pass: config.smtp.pass },
})
}
@@ -37,7 +39,7 @@ export async function sendChatNotification(customer, text) {
const name = customer.name || customer.email || 'Kunde'
await mailer.sendMail({
from: `"Webklar Kundenportal" <${config.smtp.from}>`,
from: `"WEBklar Kundenbereich" <${config.smtp.from}>`,
to: config.chatNotify.emails.join(', '),
subject: `Neue Portalnachricht von ${name}`,
text: [
@@ -65,7 +67,7 @@ export async function sendAdminNotice(subject, lines) {
const mailer = getTransporter()
if (!mailer || !config.chatNotify.emails.length) return { sent: false, reason: 'nicht konfiguriert' }
await mailer.sendMail({
from: `"Webklar Kundenportal" <${config.smtp.from}>`,
from: `"WEBklar Kundenbereich" <${config.smtp.from}>`,
to: config.chatNotify.emails.join(', '),
subject: `[Abo] ${subject}`,
text: lines.join('\n'),
@@ -86,7 +88,8 @@ export async function sendCustomerMail(to, subject, lines, attachments = []) {
const mailer = getTransporter()
if (!mailer) throw new Error('SMTP nicht konfiguriert')
return mailer.sendMail({
from: `"Webklar" <${config.smtp.from}>`,
from: `"WEBklar" <${config.smtp.from}>`,
replyTo: config.smtp.replyTo || undefined,
to,
bcc: config.chatNotify.emails.join(', ') || undefined,
subject,