Probleme beim E-Mail-Versand mit Contao – Ursachen und Lösungen
von Nicole Weiß
In dieser Woche bin ich gleich auf zwei Fälle gestoßen, in denen der E-Mail-Versand über Contao nicht funktionierte. Solche Probleme sind zwar nicht alltäglich, kommen aber vor – und dann ist schnelle Hilfe gefragt. In diesem Beitrag gehe ich darauf ein, warum solche Probleme entstehen können und welche Lösungen es gibt.
Warum gibt es keine Fehlermeldung in Contao?
Eine Besonderheit, die viele Kunden überrascht: Contao generiert nicht immer eine Fehlermeldung, wenn ein E-Mail-Versandproblem auftritt.
Der Grund dafür liegt darin, dass Contao den Versandprozess in diesen Fällen erfolgreich abschließen kann, das eigentliche Problem jedoch beim Empfang der E-Mail auftritt. Das bedeutet: Die E-Mail wird von Contao an den Empfänger-Mailserver übergeben, aber dieser blockiert die E-Mail oder leitet sie nicht korrekt weiter. Da der Fehler erst nach dem Versand auftritt, bekommt Contao davon gar nichts mit.
Das Gemeine daran ist: Solche Probleme fallen unter Umständen erst Wochen später auf, und der Besucher bekommt in der Zwischenzeit nach dem Versand des Formulars die Mitteilung, dass alles geklappt hat.
Warum entstehen E-Mail-Probleme?
Es gibt verschiedene Gründe, warum der E-Mail-Versand über eine Contao-Seite nicht erfolgreich ist. Häufig liegt es an den folgenden Faktoren:
SPF-Einträge
Der SPF (Sender Policy Framework) Eintrag legt fest, welche Server E-Mails im Namen einer Domain versenden dürfen.
Wenn der Webserver, der für den Versand der E-Mails verantwortlich ist, nicht im SPF-Eintrag eingetragen ist, kann die E-Mail vom empfangenden Mail-Server als Spam markiert oder ganz abgelehnt werden.
Standardmäßig ist das meist kein Problem, wenn E-Mails und Webseite über denselben Hoster laufen und der SPF-Eintrag nicht verändert wurde (oder gar keiner vorhanden ist). Es ist dennoch wichtig, einen guten SPF-Eintrag zu haben, da dieser festlegt, wer im Namen der Domain E-Mails verschicken darf.
Gerade bei der Verwaltung von E-Mails über externe Anbieter wie z. B. Microsoft bzw. Outlook können Probleme auftreten, denn hier werden die SPF-Einträge angepasst, um alles rund um die E-Mail sicherer zu machen, was im Grunde richtig und wichtig ist.
Bei den beiden aktuellen Fällen, die ich betreut habe, werden die E-Mails über Outlook verwaltet, und der SPF-Eintrag wurde so angepasst, dass nur Server, die unter spf.protection.outlook.com aufgelistet sind, E-Mails verschicken dürfen. In beiden Fällen wurde also die Contao-Webseite vom erlaubten Versand ausgeschlossen. Die E-Mails gehen zwar raus, werden jedoch vom empfangenden E-Mail-Dienst abgelehnt, da der Webserver keine Berechtigung hat, E-Mails zu verschicken.
Die Hosting-Umgebung
Es gibt Hoster, die aus Sicherheitsgründen den Versand von E-Mails über die PHP-Mailer-Funktion einschränken oder komplett verbieten.
Manchmal treten auch erst Probleme auf, wenn der Hoster Änderungen an seinen Servereinstellungen vornimmt, die die E-Mail-Konfiguration betreffen. Auch eine Aktualisierung der Server-Software durch den Hoster kann dafür sorgen, dass vor allem ältere Contao-Installationen inkompatibel werden und somit bestimmte Funktionen nicht mehr funktionieren.
Ein Umzug der Webseite zu einem anderen Hoster kann den E-Mail-Versand ebenfalls beeinträchtigen, da sich die komplette technische Umgebung ändert. Was der eine Hoster erlaubt, muss beim anderen nicht der Fall sein.
Was kann man tun?
1. Webserver im SPF-Eintrag erlauben
Überprüfen Sie, ob der Webserver, der die E-Mails versendet, im SPF-Eintrag der Domain eingetragen ist. Falls nicht, sollte der Eintrag angepasst werden, um sicherzustellen, dass der Versand von diesem Server aus erlaubt ist.
Dazu gibt es verschiedene Tools, wie z. B. den SPF Record Lookup. (Darauf achten, dass "SPF Record Lookup" im orangenen Button aktiv ist.)
2. SMTP-Postfach anlegen und eintragen
Statt E-Mails direkt über den Webserver zu versenden, ist es sinnvoller, ein SMTP-Postfach zu verwenden. Hierbei handelt es sich um ein Postfach, das bei einem E-Mail-Provider angelegt wird und über das der Versand erfolgt.
Diese Variante empfehle ich unabhängig davon, ob der Versand über Contao funktioniert oder nicht, denn sie ist in jedem Fall sicherer und wenn hier Probleme auftreten, bekommt Contao das mit und kann eine Fehlermeldung generieren.
Ein beliebter Fehler: Es sind mehrere Dienstleister vorhanden, und einer davon ändert das Passwort für das SMTP-Postfach, ohne dass alle davon erfahren – alles schon erlebt.
Kleiner Hinweis: Ich würde immer ein dediziertes Postfach für Contao anlegen, z. B. unter einer noreply@- oder einer contao@-Adresse, denn die Zugangsdaten werden im Klartext auf dem Webserver gespeichert. Diese Daten sind von außen nicht zugänglich! Aber jeder, der Zugang zum FTP hat, kann diese Daten sehen. Das sind in der Regel nur Mitarbeiter und vertrauensvolle externe Dienstleister. Dennoch würde ich kein wichtiges aktives Postfach hier hinterlegen.
3. Eine aktuelle Contao-Installation
Um mögliche Fehler aufgrund von Inkompatibilitäten zu vermeiden: Contao-Installation aktuell halten. Das ist aber sowieso immer eine sehr gute Idee.
4. Testen! Testen! Testen!
Zu guter Letzt: Regelmäßig die Formulare testen. Wie oft man das macht, hängt davon ab, wie wichtig einem die Besucheranfragen sind. Es gibt so viele Faktoren, die sich unbemerkt ändern können.
Wie kann man das tun?
1. Den SPF-Eintrag überprüfen
Der SPF-Eintrag wird über die DNS-Einstellungen der Domain angelegt und somit über den Hoster eingestellt. Hier gibt es viele verschiedene Möglichkeiten, daher kann ich kein Patentrezept geben, verweise aber gerne auf die MXToolbox, mit der man sich einen individuellen SPF-Eintrag generieren kann: SPF Record Generator.
Wo genau sich der DNS-Eintrag anlegen/anpassen lässt, ist vom jeweiligen Hoster abhängig. Hier empfehle ich einen Blick in die FAQ des Hosters zu werfen.
2. SMTP-Daten in Contao hinterlegen
Um die SMTP-Daten in Contao einzutragen, können diese in der Datei .env.local
hinterlegt werden (ab Contao 4.9). Diese befindet sich im obersten Ordner der Contao-Installation.
# .env.local
MAILER_DSN=smtp://benutzername:passwort@smtp.example.com:465?encryption=ssl
Zum Generieren dieser Zeile empfehle ich diesen Generator im Contao Handbuch.
Eine Alternative für Contao 4-Installationen ist das Hinterlegen der SMTP-Daten in der parameters.yaml
. Diese befindet sich in der Regel im config
-Ordner der Webseite, bis Contao 4.7 im Ordner app/config/
.
Die Daten selbst müssen in diesem Fall wie folgt eingetragen werden:
parameters:
…
mailer_transport: smtp
mailer_host: host.example.com
mailer_user: mail@example.com
mailer_password: 'mein-passwort'
mailer_port: 465
mailer_encryption: ssl
Wichtig: Nach dem Einfügen der SMTP-Daten den Contao-Cache neu aufbauen und wie immer das Testen nicht vergessen!
3. Contao aktuell halten
Regelmäßige Contao-Updates sind immer eine gute Idee, da sie sicherstellen, dass die Webseite auch die neuesten technischen Entwicklungen berücksichtigt.
Wer sich selbst um seine Installation kümmert, sollte damit kein Problem haben. Allen anderen empfehle ich, einen erfahrenen Dienstleister damit zu beauftragen. In der Regel funktionieren Contao-Updates wunderbar, aber wie immer hat jede Regel ihre Ausnahmen.
Sie haben weder Zeit noch Lust sich damit zu befassen? Ich unterstütze Sie gerne!
Kontaktieren Sie michFazit
Probleme beim E-Mail-Versand über Contao entstehen oft durch externe Faktoren wie fehlerhafte SPF-Einträge oder Änderungen beim Hoster. Contao selbst hat in solchen Fällen wenig Kontrolle, da der Fehler nach der Übergabe der E-Mail auftritt. Um das Problem zu beheben, sollten die Servereinstellungen überprüft und gegebenenfalls ein SMTP-Postfach eingerichtet werden.