Modul 7 · 7.3
Deutsch
Mail von Ihrer Website und Formularen
Modul 7: Newsletter und Mail von Ihrer Website · Lesezeit: 11 Minuten
Lernziel: Nach dieser Lektion können Sie Websitemail (Kontaktformulare, Bestellbestätigungen, WordPress-Meldungen) so einrichten, dass sie ankommt, keine DMARC-Probleme verursacht und Ihr Paket nicht missbraucht wird.
Kernbegriffe: PHP mail(), SMTP mit Anmeldung, Envelope-Absender, From vs. Reply-To, die Besucheradresse niemals als From, SMTP-Plugin, Transaktionsmail, Formularspam, Captcha, Honeypot, Versandlimit, lokale Zustellung, wenn der MX woanders liegt
Ihre Website ist auch ein E-Mail-Programm
Ihre Website versendet mehr Mail, als Sie denken. Ein Kontaktformular mailt Ihnen jede Nachricht. Ein Webshop verschickt Bestellbestätigungen, Rechnungen und Versandmeldungen. WordPress mailt bei einem neuen Kommentar, einem Update oder einem Passwort-Reset. Für den Empfänger ist das einfach Mail von Ihrer Domain, und sie wird genauso streng geprüft wie Mail aus Ihrem Postfach: SPF, DKIM, DMARC, Reputation.
Trotzdem geht Websitemail häufiger schief als gewöhnliche Mail. Das liegt meist an einem von drei Dingen: der Versandart, der Absenderadresse oder dem Missbrauch des Formulars.
Methode 1: PHP mail()
Die einfachste Methode für eine Website, Mail zu versenden, ist die PHP-Funktion mail(). Die Website übergibt die Mail dann direkt an das Mailprogramm des Webservers, ohne Anmeldung. Das funktioniert meist, hat aber Nachteile:
- Der Envelope-Absender (Return-Path) wird oft das Systemkonto Ihres Pakets, etwa
gebruiker@server.hosting.example, und nicht Ihre Adresse. SPF wird dann für die Domain des Servers geprüft und ist damit nicht ausgerichtet auf Ihre From-Domain (Alignment, Lektion 7.1). - Ob eine DKIM-Signatur Ihrer Domain hinzugefügt wird, hängt vom Server ab. Auf manchen Servern ja, auf anderen nicht.
- Sie sehen nichts davon zurück. Kommt die Mail nicht an oder erhalten Sie einen Bounce, geht dieser an das Systemkonto, wo niemand nachschaut.
- Kein Limit pro Formular. Wird das Formular missbraucht, versendet der Server in Ihrem Namen, bis das Limit Ihres Pakets erreicht ist.
Methode 2: SMTP mit Anmeldung (besser)
Lassen Sie Ihre Website versenden wie Ihr E-Mail-Programm: Anmeldung am Versandserver mit einem echten Postfach, über Port 587 (STARTTLS) oder 465 (SSL/TLS), mit der vollständigen E-Mail-Adresse als Benutzername (Lektion 1.4 und 2.1). Dann:
- ist der Envelope-Absender Ihre eigene Adresse, und die Mail wird signiert wie gewöhnliche Mail Ihrer Domain;
- landen Bounces in einem Postfach, das Sie lesen können;
- steht die gesendete Mail, wenn Sie das möchten, im Ordner Gesendet;
- können Sie pro Postfach ein eigenes Versandlimit festlegen.
In WordPress erledigen Sie das mit einem SMTP-Plugin. Dieses ersetzt die Standard-Mailfunktion von WordPress durch Versand per SMTP. Sie tragen dieselben Angaben ein wie in einem E-Mail-Programm: Server, Port, Verschlüsselung, Benutzername und Passwort. Richten Sie dafür bevorzugt ein eigenes Postfach ein, zum Beispiel website@example.com. Wird das Passwort jemals gestohlen, bleibt Ihr eigenes Postfach sicher, und Sie sehen auf einen Blick, welche Mail von der Website kommt.
Für eine eigene PHP-Website gibt es Bibliotheken, die per SMTP versenden, wie PHPMailer. Legen Sie das Passwort in einer Konfigurationsdatei außerhalb des Webverzeichnisses ab, nicht im Code einer Seite.
Bei WebOké finden Sie die Angaben für SMTP in der DirectAdmin-Anleitung 8.1, mit dem Servernamen Ihres Pakets; bei anderen Anbietern stehen sie in der Anleitung oder der Willkommens-Mail, und es funktioniert auf dieselbe Weise.
Viel Transaktionsmail? Nutzen Sie einen Dienst
Versenden Sie Hunderte Bestellbestätigungen pro Tag, lohnt sich ein Transaktionsdienst: ein Versanddienst für automatische Mail. Dieser hat eine gute Reputation und zeigt Ihnen, was mit jeder Mail geschehen ist. Sie verknüpfen die Domain wie bei einem Newsletterdienst (DKIM über CNAME, Lektion 7.1). Halten Sie Transaktionsmail und Newsletter getrennt: eine fehlgeschlagene Kampagne darf nicht die Bestätigungsmail Ihrer Bestellungen beeinträchtigen.
Die goldene Regel: Die Besucheradresse ist niemals der Absender
Bei einem Kontaktformular ist es verlockend, die Mail "im Namen" des Besuchers zu versenden. Dann können Sie in Ihrem E-Mail-Programm direkt auf Antworten klicken. Das sieht dann so aus:
From: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierAber Ihr Server darf überhaupt nicht im Namen von example.net mailen. Angenommen, example.net hat ein DMARC-Richtlinie p=reject. Der empfangende Server (Ihrer, oder der von Gmail, wenn Sie Mail weiterleiten) sieht eine Mail mit From example.net, die nicht per SPF oder DKIM von example.net kommt, und weist sie ab. Viele große Maildomains haben eine strenge Richtlinie: Bei einer Prüfung am 8. November 2026 hatten unter anderem yahoo.com, aol.com, ziggo.nl und kpnmail.nl eine DMARC-Richtlinie p=reject, und icloud.com, gmx.de und web.de p=quarantine. Ein Besucher mit so einer Adresse füllt Ihr Formular aus, und Sie erhalten die Nachricht nie oder sie landet in Ihrem Spamordner. Domains mit p=none (wie zu diesem Zeitpunkt gmail.com und hotmail.com) können ihre Richtlinie jederzeit verschärfen, und Google schreibt in seinen Richtlinien ausdrücklich, dass Sie Gmail-Adressen nicht als From nachahmen dürfen. Verlassen Sie sich also niemals darauf, dass es gut geht.
Die richtige Methode:
From: Website example.com <website@example.com>
Reply-To: Pieter <pieter@example.net>
To: info@example.com
Subject: Vraag via het contactformulierDer Absender ist Ihre eigene Adresse, sodass SPF, DKIM und DMARC stimmen. Die Adresse des Besuchers steht in Reply-To. Klicken Sie auf Antworten, geht Ihre Antwort an Pieter. In den meisten Formular-Plugins finden Sie das bei den Mail-Einstellungen: tragen Sie bei Absender (From) eine feste Adresse Ihrer eigenen Domain ein, und bei Reply-To das Feld, in das der Besucher seine Adresse einträgt.
Formulare vor Missbrauch schützen
Ein ungeschütztes Formular wird früher oder später von Bots gefunden. Im besten Fall erhalten Sie Spam. Im schlimmsten Fall missbrauchen sie es, um Spam an andere zu versenden: Wenn Ihr Formular eine Bestätigung an "die vom Besucher eingegebene Adresse" sendet, kann ein Bot dort jede beliebige Adresse der Welt eintragen, mit eigenem Text in der Nachricht. Dann versendet Ihre Domain Spam, mit allen Folgen für Ihre Reputation (Lektion 5.2).
Schutz in Schichten:
- Captcha oder eine unsichtbare Prüfung (wie reCAPTCHA oder Turnstile) hält die meisten Bots ab.
- Honeypot: ein verborgenes Feld, das Menschen nicht sehen und Bots ausfüllen. Ist es ausgefüllt? Dann wird die Nachricht nicht versendet.
- Kein freier Text in einer Bestätigung an den Besucher, oder überhaupt keine Bestätigung an die angegebene Adresse. Eine einfache Meldung "Vielen Dank, wir haben Ihre Nachricht erhalten" auf der Seite genügt.
- Ein Versandlimit pro Postfach für das Website-Postfach, niedriger als das Ihres Pakets.
- Software aktuell halten. Veraltete Plugins sind ein bekannter Einstiegspunkt für Missbrauch.
Bemerken Sie, dass Ihr Paket plötzlich viel Mail versendet, oder erhalten Sie eine Meldung, dass das Tageslimit erreicht ist, während Sie selbst kaum mailen? Ändern Sie dann sofort die Passwörter und prüfen Sie, welches Formular oder Skript die Mail versendet (Lektion 3.4).
Mail liegt woanders, Website hier
Eine häufige Falle: Ihre Website liegt bei einem Anbieter, Ihre Mail bei einem anderen (zum Beispiel Microsoft 365 oder Google Workspace). Ihr MX zeigt auf diesen anderen Anbieter. Der Webserver denkt aber immer noch, dass er selbst die Mail für Ihre Domain abwickelt, weil die Domain auch auf seinem eigenen Paket liegt. Mail vom Formular an info@example.com liefert er dann lokal zu, in einem Postfach auf dem Webserver, in das niemand hineinschaut, oder er gibt einen Fehler wie 550 ... mailbox unavailable aus.
Die Lösung ist, im Panel des Webservers anzugeben, dass die Mail woanders abgewickelt wird. In DirectAdmin bei WebOké ist das die Checkbox "Diesen Server zur Verarbeitung meiner E-Mails verwenden" bei MX-Einträgen (deaktivieren). Andere Panels haben vergleichbare Einstellungen, etwa "E-Mail-Routing: extern" in cPanel. Noch besser: Lassen Sie die Website über SMTP mit einem Postfach bei dem Anbieter mailen, bei dem Ihre Mail tatsächlich liegt.
Zusammenfassung
- Websitemail wird genauso streng geprüft wie gewöhnliche Mail. Lassen Sie die Website über SMTP mit Anmeldung mailen, nicht über
mail(). - Verwenden Sie ein eigenes Postfach für die Website, mit einem eigenen Versandlimit.
- Die Adresse des Besuchers gehört in Reply-To, niemals in From. Sonst schlägt DMARC fehl, und bei Domains mit
p=reject(wie yahoo.com, ziggo.nl, kpnmail.nl) wird die Mail abgewiesen. - Schützen Sie Formulare mit Captcha, Honeypot und ohne freie Bestätigungen an angegebene Adressen.
- Liegt Ihre Mail bei einem anderen Anbieter, deaktivieren Sie die lokale Zustellung auf dem Webserver oder mailen Sie per SMTP bei diesem Anbieter.
Quiz
Aufgabe
Aufgabe O7.3: Websitemail überprüfen. Füllen Sie ein Formular auf Ihrer eigenen Website mit einer Gmail- oder Outlook.com-Adresse als Absender aus und sehen Sie sich die Header der Nachricht an, die bei Ihnen eingeht. Beantworten Sie die Checkliste: Welche Adresse steht in From, steht die Besucheradresse in Reply-To, was sagen spf=, dkim= und dmarc= bei Authentication-Results, versendet Ihre Website per SMTP oder per mail(), und hat das Formular ein Captcha oder einen Honeypot? Haben Sie keine eigene Website, beantworten Sie die Fragen für das Beispiel in dieser Lektion. Danach erhalten Sie die Musterantwort.
Aufgabe O7.3: Website-Mail überprüfen
Diese Aufgabe machen Sie selbst; niemand prüft sie nach. Haken Sie ab, was Sie erledigt haben, und markieren Sie die Aufgabe als erledigt.
From = eine feste eigene Adresse, Reply-To = der Besucher, Versand über SMTP mit Anmeldung, Captcha oder Honeypot, und keine Bestätigung mit Freitext (das missbrauchen Spammer). Steht die Besucheradresse in From, scheitert DMARC, sobald die Domain des Besuchers eine Richtlinie hat (Lektion 7.3).
Ihre Haken und Notizen bleiben nur in diesem Browser; wir senden sie nirgendwohin. Sind Sie angemeldet, speichern wir in Meine Kurse nur, dass Sie die Aufgabe erledigt haben.
Weiterführende Informationen
Die Schritte in diesen Artikeln gelten für die Panels von WebOké; bei anderen Anbietern funktioniert es ähnlich.
- Ein Kontaktformular auf Ihrer Website: Felder per E-Mail versenden und Spam vermeiden
- Wie bekomme ich in PHP mit mail() den richtigen Absender? SMTP
- E-Mail-Versand über PHP klappt nicht, MX-Einträge zeigen woandershin
- Limit für den E-Mail-Versand
- Tägliches E-Mail-Limit erreicht
- DirectAdmin Anleitung 8.1: Alle Einstellungen im Überblick: Server, Ports und Sicherheit
- DirectAdmin Anleitung 5.10: E-Mail bei Microsoft 365 oder Google Workspace, Website bei WebOké
