Kontaktformular – aber schnell
Das perfekte DSVGO-konforme Kontaktformular ist ein klassisches, minimalistisches WordPress-Formular. Es besteht aus:
- Einem Feld für den Namen
- Einem Feld für die E-Mail-Adresse
- Einem großen Textfeld für die Nachricht
- Einem Senden-Button
- (Optional, aber für die DSGVO in Deutschland Pflicht): Einer Checkbox (Auswahl) für die Datenschutzerklärung.
Die gute Nachricht vorweg: Die sicherste Methode gegen das Auslesen (Scrapen) deiner Mailadresse durch Bots ist genau so ein Kontaktformular. Da deine E-Mail-Adresse dabei im Hintergrund auf dem Server verarbeitet wird und nirgends im Quelltext der Seite auftaucht, können Bots sie auch nicht auslesen.
Hier sind die zwei einfachsten Wege, wie du das für deine Blogs umsetzt.
Methode 1: Der einfachste Weg über ein Plugin (Empfohlen)
Falls deine Blogs auf WordPress laufen, ist ein Plugin die schnellste und wartungsärmste Lösung. Du musst keinen Code anfassen und kannst das Formular optisch genau so anpassen.
Geeignete Plugins:
- Fluent Forms oder WPForms: Beide bieten einen extrem einfachen Drag-and-Drop-Editor. Du ziehst dir einfach die Felder Name, E-Mail, Betreff und Nachricht zusammen, konfigurierst diese, fügst deine Daten hinzu (mailadresse) und fertig.
- Contact Form 7: Der absolute Klassiker. Erzeugt standardmäßig genau so ein schlichtes Formular wie auf der Beispielseite, verlangt aber minimale Einarbeitung bei den Einstellungen. (was für manche schon wieder nervig ist)
Schutz vor Spam & Bots (Sicherheit):
Da Bots nun deine Mailadresse nicht mehr sehen, versuchen sie stattdessen, das Formular mit Spam zu füttern. So verhinderst du das:
- Honeypot-Funktion: Viele Plugins (wie Fluent Forms) haben einen unsichtbaren „Honigtopf“ integriert. Bots füllen dieses für Menschen unsichtbare Feld aus und entlarven sich selbst. Das Formular blockiert den Versand automatisch.
- Turnstile (Cloudflare) oder reCAPTCHA v3: Ein unsichtbarer Spam-Schutz, der im Hintergrund das Nutzerverhalten analysiert, ohne dass deine Besucher nervige Bilderrätsel lösen müssen.
Methode 2: Der Weg über eigenen Code (Für maximale Kontrolle)
Wenn du keine Plugins nutzen möchtest (oder kein WordPress nutzt), kannst du das Formular mit HTML und PHP selbst bauen. Auch hier ist die Mailadresse absolut sicher, da der PHP-Code serverseitig ausgeführt wird und für Bots unsichtbar bleibt.
Ein sicheres, minimalistisches Setup sieht so aus:
1. Das HTML-Formular (Für das Aussehen)
HTML
<form action="kontakt.php" method="POST" class="kontakt-formular">
<label for="name">Name:</label>
<input type="text" id="name" name="name" required>
<label for="email">E-Mail-Adresse:</label>
<input type="email" id="email" name="email" required>
<label for="betreff">Betreff:</label>
<input type="text" id="betreff" name="betreff" required>
<label for="nachricht">Nachricht:</label>
<textarea id="nachricht" name="nachricht" rows="6" required></textarea>
<input type="text" name="honeypot" id="honeypot" style="display:none !important" tabindex="-1" autocomplete="off">
<button type="submit">Nachricht senden</button>
</form>
2. Die PHP-Verarbeitung (kontakt.php)
Dieses Skript nimmt die Daten entgegen, prüft den Spam-Schutz und schickt die Mail im Hintergrund an dich ab.
PHP
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// 1. Honeypot prüfen (Wenn befüllt, war es ein Bot)
if (!empty($_POST['honeypot'])) {
die("Spam erkannt.");
}
// 2. Eingaben bereinigen (Schutz vor Code-Einschleusung)
$name = htmlspecialchars(strip_tags(trim($_POST["name"])));
$email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL);
$betreff = htmlspecialchars(strip_tags(trim($_POST["betreff"])));
$nachricht = htmlspecialchars(strip_tags(trim($_POST["nachricht"])));
// 3. Validierung
if (empty($name) || !filter_var($email, FILTER_VALIDATE_EMAIL) || empty($nachricht)) {
die("Bitte füllen Sie alle Felder korrekt aus.");
}
// 4. E-Mail Einstellungen
$empfaenger = ""; // Deine echte Adresse (unsichtbar im Web)
$mail_betreff = "Neues Kontaktformular: " . $betreff;
$mail_inhalt = "Name: $name\nE-Mail: $email\n\nNachricht:\n$nachricht";
$headers = "From: \r\n" . "Reply-To: $email\r\n";
// 5. Absenden
if (mail($empfaenger, $mail_betreff, $mail_inhalt, $headers)) {
echo "Vielen Dank! Ihre Nachricht wurde gesendet.";
} else {
echo "Fehler beim Senden. Bitte versuchen Sie es später noch einmal.";
}
} else {
echo "Zugriff verweigert.";
}
?>
Fazit & Empfehlung
Wenn du deine Blogs schnell und ohne Programmieraufwand ausstatten willst, fährst du mit einem Plugin (wie WPforms) am besten. Es nimmt dir das Designen ab, bringt den Spam-Schutz (Honeypot) per Mausklick mit und du musst dich nicht um Sicherheitslücken im PHP-Code kümmern.