WordPress besitzt eigene Routinen für den E-Mail-Versand über PHP. Solche Mails enden aber zunehmend in Spamordnern oder werden gar nicht erst bis zum Empfänger transportiert. In diesem Beitrag erläutere ich, woran das liegt und wie man das Problem löst.

Simpler E-Mail-Versand

Es könnte so schön sein: WordPress besitzt Bordmittel, um mit PHP E-Mails zu erstellen und abzusenden. Aber diese einfachen Methoden haben einen gewaltigen Nachteil: absolut jeder kann sie zu jedem beliebigen Zweck benutzen.

Sie haben vielleicht schon einmal gehört, dass E-Mails nicht sicherer sind als Postkarten. Während die Transportweg-Verschlüsselung per TLS heutzutage zwar Standard ist, wurden E-Mails früher praktisch als Klartext durch das Internet gesendet. An jedem Punkt der Reise konnte der Text gelesen werden. Das wird durch TLS zwar verhindert, aber dennoch existierten in den ursprünglichen technischen Umsetzungen für den E-Mail-Versand keine Mechanismen, die sicherstellten, dass der Absender auch wirklich war, wer er zu sein vorgab. Den Absender einer E-Mail zu fälschen ist etwa so trivial, wie einen falschen Absender auf einen Briefumschlag zu schreiben.

Wie so oft in der technischen Entwicklung wurde den Möglichkeiten zum Missbrauch nicht ausreichend Aufmerksamkeit geschenkt, bevor die Technik sich flächendeckend verbreitete. Das Ergebnis kennen wir: ein ständig steigendes Aufkommen von Spam-E-Mails.

Funktionsweise von Spamfiltern

Um der Massen an Spam-Mails Herr zu werden, wurden im Laufe der Zeit einige Mechanismen eingeführt, die legitime Mails von Spam unterscheiden sollen. Ohne zu sehr ins technische Detail zu gehen, gibt es verschiedene Prüfungen, deren Ergebnis dazu führen kann, dass eine Mail als Spam behandelt wird. Dazu gehören Blacklists von bekannten Spamservern und -domänen, inhaltliche Kriterien der Mails und auch Prüfungen der absendenden Server.

Immer häufiger ermittelt ein Mailserver, der Mails zustellt oder weiterleitet, ob der absendende Server überhaupt zum E-Mail-Versand im Namen der Domäne des vermeintlichen Absenders berechtigt ist. Es ist zwar möglich, eine Absenderangabe zu fälschen, aber dennoch hinterlässt der Server, der die Mail sendet, eine Identifikation im Kopf der Mail: er sendet seine IP-Adresse mit.

Ein Beispiel: ich könnte Ihnen eine E-Mail senden, als deren Absender ich email hidden; JavaScript is required angebe. Die Mail sende ich aber von einem eigenen Server, da ich ja keinen Zugriff auf den Mailserver der Sparkasse habe. Die Prüfung besteht nun darin, dass weiterleitende Server den für sparkasse.de zuständigen Mailserver fragen, ob die absendende IP-oder Server-Adresse die Erlaubnis hat, im Namen von sparkasse.de Mails zu versenden. Kommt hier eine negative Antwort, ist die Wahrscheinlichkeit für SPAM sehr hoch und die Mail wird entsprechend markiert oder gar verworfen.

Welcher Mailserver für den E-Mail-Versand einer Domäne zuständig ist, wird über bestimmte DNS-Einträge ermittelt. Diese sind weltweit verteilt öffentlich zugänglich. Der Eintrag, der den zuständigen Server identifiziert, nennt sich mx resource record. Der zu einer Domäne gehörende MX-Eintrag (üblicher verkürzter deutscher Begriff) enthält alle Angaben über die Server, die im Namen der Domäne Mails versenden dürfen. Nur solche Server, die hier enthalten sind, sind unbedenklich aus Sicht des Spamfilters.

Warum der E-Mail-Versand mit WordPress-Bordmitteln fehlschlägt

Es ist für den technischen Laien nicht offensichtlich, aber eine Domäne steht in der Regel nicht für einen einzelnen Rechner. Die weitaus meisten Websites werden von Webservern aus gehostet, von denen jeder seinerseits für eine Vielzahl von Websites zuständig sein kann. Wenn man ein Hosting bei einem größeren Hoster nutzt, dann liegt die gesamte Mailserver-Infrastruktur auf völlig anderen Servern als die Website. Es sind also unterschiedliche Geräte, die sogar auf unterschiedlichen Kontinenten stehen könnten.

Das bedeutet: wenn Sie eine Internet-Adresse im Browser eingeben, übersetzt das DNS-Namenssystem diese Anforderung in die IP-Adresse eines Webservers, der Ihnen dann die Website liefert, wenn jedoch eine Mail versendet wird, ist dafür ein völlig anderes Gerät zuständig, das auch über eine andere IP-Adresse oder einen anderen Servernamen angesprochen wird.

Wenn Sie nun die Bordmittel von WordPress für den E-Mail-Versand benutzen, dann schreibt WordPress zwar eine von Ihnen angegebene Absendeadresse in die E-Mail, aber die muss nicht einmal wirklich existieren. Und die IP-Adresse, die als absendender Server in der Mail steht, ist wiederum dem tatsächlich für ihre Domäne zuständigen Mailserver nicht bekannt. Also wird die Frage, ob die IP-Adresse im Namen der Domäne Mails versenden darf, verneint. In der Folge wird die Mail deshalb als Spam behandelt.

Die Lösung für den E-Mail-Versand mit WordPress: SMTP-Plugins

Damit der E-Mail-Versand aus WordPress zuverlässiger funktioniert, muss WordPress den offiziellen für die Domäne gültigen Weg gehen und den Mailserver mit dem Versand beauftragen. Damit das möglich ist, muss ein beliebiges SMTP-Plugin installiert werden, beispielsweise Easy WP SMTP.

Wer schon einmal ein Mailprogramm wie Thunderbird auf dem Rechner für den Empfang und Versand von E-Mails eingerichtet hat, weiß, dass bestimmte Server- und Portkonfigurationen einzustellen sind. Welche das genau sind, ist vom jeweiligen Dienstprovider abhängig. Für unseren Zweck sind nur die Einstellungen des SMTP-Protokolls notwendig, welches für das Senden zuständig ist. IMAP und POP3 können ignoriert werden, weil die Website ja keine Mails empfangen soll.

Zunächst einmal muss eine Mailadresse für den Zweck des Versandes beim Hoster eingerichtet werden. Das geschieht auf die gleiche Weise wie für alle Mailadressen, die man unter einer Domäne bereits verwendet, z.B. info@… Es empfiehlt sich zum Beispiel „email hidden; JavaScript is required“.

Wenn die Adresse angelegt ist, stellt der Provider Informationen für die Konfiguration mit Mail Clients (z.B. der bereits genannte Thunderbird) bereit. Manche Provider verwenden für Senden und Empfangen den gleichen Server, manche verwenden getrennte Server. Oft trägt der Sendeserver die Buchstabenfolge smtp im Namen, das muss aber nicht sein. Benötigt wird also der korrekte Name des sendenden Servers, dazu eine Verschlüsselungsmethode (TLS/SSL oder STARTTLS) und der zugehörige Port (Standard 465 für TLS/SSL oder 587 für STARTTLS, aber in Einzelfällen können diese Zahlen abweichen).

Diese Angaben müssen nun in das SMTP-Plugin eingetragen werden, dazu auch der Benutzername (meist die komplette E-Mail-Adresse, kann aber auch etwas völlig anderes sein) und das Passwort, das für den Zugriff angelegt wurde. Wenn alles korrekt gemacht wird, ist das Plugin anschließend in der Lage, genau so wie ein Mail Client auf den tatsächlichen Mailserver der Domäne zuzugreifen und die Mails so zu versenden, als würden Sie sie mit Thunderbird von Ihrem heimischen Rechner aus versenden.

Beispiel der Einrichtung von Easy WP SMTP, hier bei IONOS-Hosting

Solche Mails bestehen dann die Spam-Prüfung, zumindest soweit es die Absendeberechtigung betrifft. Es gibt zwar noch weitere mögliche Fallstricke, wie z.B. beim Versand von Massenmails, die zur Sperrung des Mailservers führen können, aber der normale Mailverkehr, also einzelne Formulare, individuelle Bestellungen und deren Bestätigungen, administrative Mails des Systems an Sie, diese Mails sollten nun ordentlich zugestellt werden.

Es empfiehlt sich noch, das Passwort auf der zweiten Seite der Einrichtung von Easy WP SMTP „Weitere Einstellungen“ in der Datenbank verschlüsselt zu speichern. Sollte es einmal zu einem Sicherheitsvorfall kommen, bei dem der Zugriff auf die Datenbankinhalte ermöglicht wird, ist das Auslesen des Passworts so verhindert.

Auf der Seite „Test-E-Mail“ schließlich können Sie sich eine Testmail an eine Ihrer bestehenden Mailadressen senden.

Da so ein Plugin nur sendet, aber keine Mails empfangen soll und kann, ist es noch ratsam, eine abweichende Antwortadresse im Plugin oder eine Weiterleitung auf eine bestehende aktive Mailadresse beim Hoster zu definieren, um etwaige Antworten auch tatsächlich zu erhalten.

Wenn Ihnen diese Einrichtung nicht gelingt oder Sie sie nicht selbst durchführen möchten, stehe ich gerne zu Ihrer Verfügung. Derartige Dienstleistungen sind sowohl in meinen Wartungsvereinbarungen enthalten als auch als einzelne Dienstleistung zum günstigen Stundensatz erhältlich.

Beitragsbild: Photo by Leon Rojas on Unsplash

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert