Meist macht man sich wenig Gedanken über die E-Mail-Funktionen von WordPress, da in der Regel alles von Anfang an funktioniert. Erst wenn keine Nachrichten bei Dir ankommen, fällt auf, dass sich in WordPress auch keinerlei Einstellungsbereich für den E-Mail-Versand findet. Was nun?
Als erstes geht es darum das Problem einzugrenzen. Allerdings kannst Du auch gleich eine sicherere Alternative zum WordPress E-Mailversand einrichten.
Wie verschickt WordPress E-Mails?
WordPress besitzt einen eingebauten E-Mailversand, der in den meisten Fällen funktioniert. WordPress nutzt dazu die PHP-Funktion mail()
. Das setzt allerdings zwei Punkte voraus:
- Die PHP-Funktion
mail()
ist aktiviert. - Der Dienst "Sendmail" läuft fehlerfrei auf dem Server, denn die PHP-Funktion übergibt die E-Mails an den Sendmail Dienst.
Bevor du Dich an die Lösung des Problems machst, solltest Du folgenden kurzen Test durchführen.
WordPress E-Mailversand testen
Wenn das Problem bei Dir auftritt, lohnt es sich als erstes herauszufinden, ob es sich um ein grundsätzliches Problem mit dem Nachrichtenversand durch WordPress handelt oder nur ein spezielles Plugin Probleme bereitet.
E-Mail Schnelltest
Wenn es schnell gehen soll, kannst Du einfach so tun als würdest Du ein neues Passwort benötigen. Das sorgt dafür, dass WordPress Dir umgehend eine E-Mail mit einem Link zusendet.
Dafür loggst Du Dich aus WordPress aus (falls Du es nicht bereits bist) und im Anmeldedialog unter deinedomain.de/wp-login.php klickst Du unter dem Login auf "Passwort vergessen?" und trägst im folgenden Formular Deine E-Mailadresse ein.
Normalerweise sollte die Benachrichtigungsemail relativ schnell in Deinem Postfach landen, aber warte ruhig ein paar Minuten ab. Falls nicht, schau sicherheitshalber noch einmal im Spamordner nach, ob sich die Nachricht dorthin verirrt hat.
Wenn nichts ankommt, dann gibt es ein generelles Problem mit dem E-Mailversand durch WordPress. Kommt die Nachricht hingegen an, deutet dies darauf hin, dass das E-Mail-Problem mit dem Plugin, das die Nachricht verschicken soll zu tun hat und Du wendest Dich am besten an den Pluginsupport.
E-Mail-Test mit Plugin
Wenn du genauer und vor allem häufiger Testen willst, kann es sich lohnen das Plugin Check Email zu installieren. Dies stellt im Administrationsbereich unter "Werkzeuge" > "Check Email" ein einfaches Formular zur Verfügung mit dem Du Testnachrichten über WordPress verschicken kannst.
Das kann dann sinnvoll sein, wenn Du einerseits ein Sicherheitsplugin wie z.B. Wordfence installiert hast, dass Dich bei zu häufiger Nutzung der "Passwort vergessen" Funktion aussperrt oder wenn du Testnachrichten an verschiedene E-Mailadressen versenden willst.
Außerdem werden einige Systeminformationen im Bezug zum E-Mailversand angezeigt und der Profi kann über "custom headers" entsprechende Anpassungen vornehmen.
Keine WordPress E-Mails? Dem Server auf der Spur
Wenn Du keinerlei Nachrichten von WordPress erhältst, hat das in der Regel mit den Servereinstellungen zu tun.
Wichtig: Der E-Mailversand über den Server birgt Nachteile, wird von manchen Hostern nicht unterstützt und in einigen Fällen hat man keinen Zugriff auf die relevanten Servereinstellungen. Deshalb verwenden wir mittlerweile für alle unsere WordPress Installationen einen externen Transactional E-Mail Service. Dazu weiter unten mehr.
Bevor Du also anfängst Dich mit dem Server zu beschäftigen, kannst Du überlegen, ob Du nicht gleich einen anderen Weg nutzen willst.
PHP-Funktion mail() und Sendmail aktiv?
Willst Du, dass die Nachrichten über den Server versendet werden, musst Du sicherstellen, dass die PHP-Funktion mail()
und auch der Serverdienst Sendmail aktiv sind. Das klärst Du am besten über den Support Deines Webhosters oder Deinem Server Administrator, denn selbst wenn Du den Fehler findest, müssen in der Regel Einstellungen angepasst werden auf die Du keinen Zugriff hast. Wer selbst aktiv werden will, findet einige Informationen in dem Artikel "How To Test The Emails WordPress Sends" (engl.) von Josh Pollock.
Sicherer WordPress E-Mailversand auf anderen Wegen
Wenn Dein Hostinganbieter keinen E-Mailversand anbietet, Dir die nötigen Servereinstellungen nicht zugänglich sind oder falls Du die Wahrscheinlichkeit erhöhen willst, dass die System-E-Mails nicht verloren gehen oder im Spamordner landen, existieren zwei alternative Möglichkeiten:
Wir gehen mittlerweile bei allen unseren WordPress Installationen den 2. Weg, da zwar die Nutzung eines eigenen E-Mailkontos die Erhaltquote verbessert, aber Transactional Email Services sind noch besser auf den sicheren E-Mailversand ausgerichtet und die Anbindung über die jeweilige API ist in der Regel sehr viel einfacher eingerichtet. Dafür kosten diese Dienste in der Regel etwas. Es gibt zwar in kleinem Rahmen kostenfreie Einstiegsangebote, aber diese Dienste müssen und sollen ja auch wirtschaften. Wer seine Website beruflich nutzt wie z.B. mit einem Online Shop, tut gut daran einen TMS zu verwenden.
Wer sich dies nicht leisten kann oder will, sollte zumindest den Weg über den SMTP-Versand gehen. Aber achte auf die meist vorhandenen Limits bei kostenfreien E-Mailkonten. Ein kostenloses Gmail-Konto lässt beispielsweise bis zu 3.000 E-Mails pro Monat zu. Falls Du für die G Suite zahlst erhöhen sich die Limits.
1. WordPress Mails über eigenes E-Mailkonto
Mit Hilfe eines Plugins, kann WordPress zum Versand von Nachrichten ein "normales" E-Mailkonto verwenden. Der Vorteil liegt darin, dass sich der Nachrichtenversand sicherer (im Sinne die Nachrichten kommen mit hoher Wahrscheinlichkeit an) gestaltet und Du in dem E-Mailkonto unter den gesendeten Nachrichten nochmal nachsehen kannst was verschickt wurde. Außerdem kannst Du ein entsprechendes E-Mailkonto meist ohne Zusatzkosten bei Deinem Hoster oder einfach bei Gmail & Co. einrichten. Aber achte trotzdem auf die meist vorhandenen Limits bei der Anzahl der versendeten E-Mails.
Wenn du diesen Weg gehen willst, solltest Du unbedingt ein eigenes getrenntes E-Mailkonto für WordPress anlegen z.B. wordpress@deinedomain.de
. Du musst die Zugangsdaten für dieses Konto in WordPress hinterlegen. Falls dann Deine Installation irgendwann mal gehacked wird, ergattert jemand ggf. diese Daten und kann sich so Zugang zu dem E-Mailkonto verschaffen. Handelt es sich um ein nur für WordPress verwendetes Extrakonto, sollte das relativ unproblematisch bleiben. Hast Du in WordPress Dein privates E-Mailkonto hinterlegt, steht meist einiges auf dem Spiel für Dich. Außerdem müllt Dir WordPress in einem Extrakonto nicht die Übersicht der versendeten E-Mails zu.
Alternativ kannst du auch ein E-Mailkonto, dass die Verifizierung über OAuth 2.0 oder eine API zulässt verwenden. Allerdings ist die Einrichtung dabei meist mühsamer. Dazu gleich mehr.
Anleitung: E-Mail über SMPT einrichten
Eigentlich alle aktuellen E-Mailkonten nutzen SMPT als Methode zum E-Mailversand. Das kostenfreie Plugin Post SMTP Mailer/Email Log (früher Postman SMPT genannt) bietet die nötige Funktionalität. Darüber hinaus lassen sich auch Emailkonten wie z.B. Gmail, Hotmail and Yahoo mittels OAuth 2.0 anbinden. Dies hat den großen Vorteil, dass die SMPT-Zugangsdaten nicht in der WordPress Datenbank gespeichert werden müssen und damit selbst im Falle eines Hacks Deiner Seite in dieser Hinsicht kein zusätzliches Sicherheitsrisiko besteht. Allerdings ist die Einrichtung eines Zugangs über OAuth 2.0 in der Regel etwas aufwändiger, als die simple Anbindung eines TMS über eine API.
Außerdem sind mit dem Post SMTP Mailer Plugin auch API Anbindungen an die Transactional Email Services SendGrid, Mandrill, Mailgun und sogar auch Gmail möglich. Dies ist die von uns bevorzugte Variante (siehe weiter unten). Trotzdem zeigen wir Dir hier im Folgenden die Einrichtung des Post SMTP Mailer/Email Log Plugins am Beispiel der etwas aufwendigeren Anbindung eines Gmailkonto via OAuth 2.0.
Post SMTP Mailer installieren
Nach der Installation des Plugins Post SMTP Mailer/Email Log sind die Einstellungen leider nur in Englisch verfügbar. Dafür lässt sich über "Start the Wizard" (1) eine geführte Einrichtung des jeweiligen E-Maildienstes beginnen:
Grundeinstellungen
Die Einrichtung ist weitgehend selbsterklärend. Als erstes gibst Du die Absendeemailadresse und den Absendernamen für Deine E-Mails an. Denk dabei daran, dass viele E-Maildienste hier keine anderen Adressen als die des E-Mailkontos zulassen.
Als nächstes muss die Serveradresse für ausgehende E-Mails angegeben werden (Outgoing Mail Server Hostname). Das Plugin versucht hier anhand der vorher angegebenen E-Mailadresse die korrekte Serveradresse zu ermitteln, was zumindest bei Gmailadressen in der Regel gelingt. Anderenfalls musst Du in der Dokumentation Deines E-Mail-Service nachsehen.
Socket & Authentication wählen
Interessant wird erst der Punkt 4. "Connectivity Test" bei dem ausgewählt wird über welchen Weg bzw. Socket (1) die Anbindung erfolgen soll und welche Authentifikationsart (2) verwendet werden soll:
Falls Du SMPT mit der Authentifikation durch Username und Password wählst, brauchst Du im folgenden Schritt nur diese beiden Felder auszufüllen. Von diesem Weg wird allerdings abgeraten, da die Informationen in der WordPress Datenbank gespeichert werden und im Falle eines Hacks Deiner Seite, können die Angreifer auch Zugriff auf das E-Mailkonto erlangen.
OAuth 2.0 oder Google API verwenden
In unserem Beispiel verwenden wir ein Gmailkonto und können daher zwischen "Gmail API" oder auch SMPT wählen. Wobei hier stets die Authentifikation über OAuth 2.0 ratsam ist, um keine Passwörter in der WordPress Datenbank zu speichern.
Die Einrichtung des OAuth 2.0 Zugriffs ist allerdings deutlich mühsamer. Als erstes siehst Du im nächsten Schritt "5. Authentification" einerseits Informationen zu "Authorized JavaScript origins" (1) und "Authorized redirect URI" (2):
Diese Informationen benötigst Du, um die "Client ID" (3) und den Schlüssel für das "Client Secret" (4) zu erstellen, die Du dann hier einträgst.
Google API: Projekt einrichten
Um an eine "Client ID" und das "Client Secret" zu kommen, gehst Du zu console.developers.google.com und loggst Dich mit den Zugangsdaten zu dem gewünschten Gmail Konto ein. Anschließend erstellst Du dort ein neues Projekt:
Der Projektname ist eigentlich nicht wichtig, aber Du kannst gerne eine Bezeichnung verwenden über die Du nachvollziehen kannst, dass es um den E-Mailzugriff auf WordPress geht. Organisation und Speicherort lässt Du am besten so wie vorgegeben. Über "Erstellen" wird das Projekt angelegt.
Google API aktivieren
Anschließend musst Du die API für Dein neues Projekt aktivieren (1):
So gelangst Du in die Google API-Bibliothek. Dort suchst Du einfach nach der "Gmail API" und wählst diese aus.
Anschließend aktivierst Du die Gmail API (1):
Im nächsten Schritt muss der "Zustimmungsbildschirm konfiguriert werden:
Hier triffst Du unter "Anmeldedaten" (1) im Reiter "OAuth-Zustimmungsbildschirm" (2) unter "Anwendungstyp" möglichst die Auswahl "intern" (3). Dazu vergibst Du einen beliebigen Namen (4) für die Anwendung:
Anschließend scrollst Du weiter nach unten und trägst dort unter "Autorisierte Domains" (5) die Domain Deiner Website ein und bestätigst dies mit Enter, so dass anschließend die Domain oberhalb des Feldes angezeigt wird, wie in folgendem Screenshot mit "wpdemo.de" der Fall ist:
Dann trägst Du noch den Link zu Deiner Datenschutzerklärung ein (6) und bestätigst dies wieder mit Enter, da der Eintrag sonst nicht übernommen wird. Zum Schluss speicherst Du Deine Einstellungen (7).
Google OAuth 2.0 & API Anmeldedaten
Jetzt kannst Du endlich die Anmeldedaten erstellen (1). Dazu wählst Du die Variante "OAuth-Client-ID" (2):
Nun wirst Du nach dem Anwendungstyp gefragt und wählst "Webanwendung" (1) erstellen:
Google Client-ID & Clientschlüssel
Im folgenden Bildschirm findest Du nun endlich die benötigte "Client-ID" (1) und den "Clientschlüssel" (2):
Diese Werte überträgst Du am besten per Copy & Paste in WordPress in das Plugin Formular von vorhin und dort in die Felder "Client ID" (3) und "Client Secret" d.h. Clientschlüssel (4):
Im nächsten Schritt kannst Du noch bestimmen auf welchem Weg Du informiert werden willst, falls der Versand einer E-Mail scheitert. Hier stehen als Optionen E-Mail, Pushover oder Slack zur Verfügung. Wobei der Weg über die E-Mail bei generellen E-Mailproblemen ggf. nicht die sinnvollste Einstellung ist. Zusätzlich kann auch eine Benachrichtigung über eine Chrome Browser Extension erfolgen.
Das war's dann mit dem Setup Wizard und im nächsten Schritt kannst Du über "Finish" die Einrichtung beenden.
Wichtig: Falls Du OAuth 2.0 über Google eingerichtet hast, musst zunächst noch den Zugriff bewilligen, bevor die Einrichtung des Plugins wirklich vollendet ist.
Das ist auch gut in der Übersicht zu erkennen, dort siehst Du einerseits, dass das Plugin noch nicht bereit für die Versendung von E-Mails ist (2) und Du erst den Zugriff auf Gmail über den Klick auf den Link (1) erlauben musst:
Im nächsten Schritt meldest Du Dich mit dem gewünschten Gmail Konto an und erlaubst dann den Zugriff:
Falls es hier Schwierigkeiten gibt, liegt es in der Regel daran, dass die Google Client-ID und der Clientschlüssel aus den vorherigen Schritten nicht korrekt in das Formular des Plugins übertragen wurden.
Hat alles geklappt, siehst Du die Bestätigung der Autorisierung (1) und das Plugin zeigt unten ebenfalls an welcher Versandweg aktuell eingerichtet ist (2).
Dort findest Du auch den Zugang zu einem Log, in dem die Ergebnisse der letzten 250 E-Mail Sendeversuche zu finden sind (3). Unter "Troubleshooting" (4) stehen noch einige Test- und Diagnosemöglichkeiten bei Problemen bereit. Als erstes solltest Du allerdings gleich nach der Einrichtung über "Send a Test Email" (5) eine Testnachricht versenden:
Hier kannst Du eine E-Mailadresse Deiner Wahl angeben und erhältst auch weitere Informationen zum Versand der Mail.
Findest Du die Testmail in Deinem E-Mail-Konto (hoffentlich nicht im Spamordner) ist alles in Ordnung und Du brauchst Dir erstmal keine Sorgen mehr um den E-Mailversand aus WordPress machen.
Du siehst die Einrichtung über OAuth 2.0 ist zwar empfehlenswert, aber leider relativ mühsam. Wenn Du nur ein oder zwei Seiten einrichten müsst, ist der Aufwand sicherlich noch vertretbar, aber die Integration eines Transactional Email Service ist in der Regel wesentlich schneller und einfacher möglich.
2. TMS: Transactional Mail Services
Es gibt Dienste, die sich auf den sicheren Versand von E-Mails spezialisiert haben. Diese werden "Transactional Mail Services" kurz TMS genannt. Mit transaktionsbasierten E-Mails sind eigentlich die vielen kleinen Systemnachrichten gemeint, die ständig verschickt werden wie Anmeldebestätigungen, Passwortänderungen, Bestell- und Versandbestätigungen, etc. Gerade bei professionellen Websites kann es schnell zu großen Problemen kommen, wenn der Versand solcher Nachrichten nicht oder nicht gut funktioniert. Deshalb entstanden Dienste, die sich auf nichts anderes als den möglichst sicheren Versand von E-Mails konzentrieren. Dazu gehören Anbieter wie SendGrid, SendinBlue, Mailgun und Amazon SES (Simple Email Service).
Vorteile eines TMS
Der Vorteil dieser Dienste liegt darin, dass die Gefahr, dass E-Mails verloren gehen wesentlich geringer ist. Für die Anbindung an WordPress muss auch kein SMTP-Zugang mühsam konfiguriert werden (ist allerdings auch möglich), sondern jeder dieser Dienste stellt eine API-Schnittstelle zur Verfügung, die sich wesentlich einfacher einrichten lässt.
Falls Du überlegst eine E-Mail-Liste für beispielsweise einen Newsletter aufzubauen, kann ein TMS ebenfalls nützlich sein. Willst Du es Dir einfach machen und die Verwaltung Deines Newsletters mit Hilfe eines Plugins wie z.B. Mailster komplett über WordPress laufen lassen, solltest Du in keinem Fall Deinen Newsletter über die WordPress Funktion versenden, sondern möglichst einen TMS nutzen.
Transactional Mail Service in WordPress integrieren
Für die meisten Anbieter existieren eigene WordPress Plugins, die dafür sorgen, dass die System-E-Mails über die API des jeweiligen Dienst verschickt werden. Das oben bereits erwähnte Plugin Post SMTP Mailer/Email Log kann z.B. auch für die Verwendung der APIs von SendGrid, Mailgun, Mandrill oder Amazon SES (Simple Email Service) konfiguriert werden.
Welchen TMS verwenden?
Es gibt zwar diverse TMS Anbieter, aber aus unserer Sicht sind gerade für Einsteiger im Grunde nur drei Dienste wirklich interessant.
SendGrid: Wir nutzen selbst in der Regel SendGrid. SendGrid ist einer der ersten TMS Anbieter gewesen und steht somit für viel Erfahrung in diesem Bereich. Preislich und von der Qualität liegt der Dienst im oberen Mittelfeld. SendGrid bietet einen Testmonat mit 40.000 kostenfreien E-Mailnachrichten. Nach Ablauf des Tests, stehen jedem Nutzer 100 E-Mails pro Tag kostenfrei zur Verfügung. Dies dürfte in vielen Fällen zumindest zu Beginn ausreichen. Der nächsthöhere Plan schlägt mit 14,95$ pro Monat für maximal 40.000 Nachrichten zu Buche.
SendinBlue: Wer lieber einen deutschsprachigen TMS mit deutschem Support nutzen will, sollte sich den französischen Anbieter SendinBlue ansehen. Der Firmensitz liegt in Europa, was in Bezug auf Datenschutz interessant sein kann. SendinBlue ist eigentlich ein Newsletter Dienst, der gleichzeitig als TMS genutzt werden kann. Bis zu 300 E-Mails pro Tag können kostenfrei versendet werden. Der nächsthöhere Lite Plan schlägt mit 19€ zzgl. MwSt. zu Buche und erhöht das Volumen auf 40.000 E-Mails pro Monat. Dabei steht einem nicht nur der TMS zur Verfügung, sondern SendinBlue ist ein vollumfänglich ausgestatteter Newsletterdienst, so dass Du dort auch gleich Deine E-Mail-Liste aufbauen kannst. Die Integration erfolgt einfach über das kostenfrei verfügbare SendinBlue Plugin für WordPress. SendinBlue ist nach Amazon SES einer der günstigsteren TMS Anbieter.
Amazon SES: In Bezug auf das Preis-Leistungsverhältnis ist zwar Amazon SES (Simple Email Service) so gut wie unschlagbar (1$ für 1.000 E-Mails), aber dafür ist die komplexe Konfiguration dieses Dienstes tendenziell eher etwas für fortgeschrittene Anwender. Wer es trotzdem versuchen will, sollte sich das kostenfreie Plugin WP Offload SES Lite von Delicous Brains ansehen, das auch einen Setup Wizard mitbringt.
Anleitung: Sendgrid als TMS nutzen
Als Beispiel zeigen wir im Folgenden die Integration von SendGrid in WordPress. Auch wenn das bereits für den SMTP-Versand vorgestellte Plugin Post SMTP Mailer ebenfalls eine Anbindung zu SendGrid ermöglicht, nutzen wir zur Integration stets das WordPress SendGrid Plugin (das Plugin wird nicht mehr weiterentwickelt) oben genannte Post SMTP Mailer/Email Log Plugin oder seit neuestem auch gerne das FluentSMTP Plugin.
Nach der Anmeldung bei SendGrid und der Installation des Plugins, gehst Du im SendGrid Account unter Settings auf API Keys und legst dort mittels "Create API Key" einen neuen Key an. Du kannst zwar alles auch nur über einen einzigen Key laufen lassen, aber wir legen für jede Website einen eigenen Key an. Als "API Key Name" vergeben wir stets den Domainnamen wie z.B. wphelp.de und als "API Key Permissions" wählst Du "Full Access":
Anschließend erhältst Du einen API Key, den Du in WordPress unter "Einstellungen" > "SendGrid" einträgst.
An dieser Stelle kannst du noch ein paar Kleinigkeiten konfigurieren wie z.B. den Absendernamen und die Absenderadresse.
Hast Du über "Update Settings" die Einstellungen gespeichert, scrollst Du ganz nach unten und findest dort ein einfaches Formular über das Du eine Testmail versenden kannst. Wenn das funktioniert, ist alles korrekt eingerichtet und Du brauchst Dir in der Regel nie wieder Sorgen um das Thema WordPress E-Mails machen.
Hilfreiches Plugin: WP Mail Logging
Wenn Du Probleme mit dem E-Mailversand aus WordPress hast und auf Nummer Sicher gehen willst, dass Du keine Nachricht z.B. von Deinem Kontaktformular verlierst, ist das Plugin WP Mail Logging eine große Hilfe. Das Plugin speichert alle Systememails in der WordPress Datenbank. Damit besitzt Du eine Sicherheitskopie der Nachrichten, falls E-Mails verloren gehen. Aber denk dabei an die DSGVO und dass Du diese Verarbeitung der Daten in Deiner Datenschutzerklärung ggf. mit angeben solltest.
Fazit WordPress E-Mails
Auch wenn WordPress von Haus aus und in der Regel ohne Dein Eingreifen E-Mails versenden kann, solltest du nicht erst aktiv werden, wenn Du ein Problem mit den Nachrichten bemerkst. Es lohnt sich bereits gleich nach der Installation entweder über ein Plugin ein E-Mailkonto einzubinden oder noch besser einen Transactional Email Services zu verwenden. Dann machst Du Dich unabhängig vom dem immer etwas unsicheren Versand der WordPress Nachrichten via PHP-Befehl und außerdem von den ggf. einschränkenden Einstellungen Deines Hosters.
Hallo
Sehr gut erklärt, danke
Hi Nils! Das SendGrid-Plugin wurde eingestellt (Author Request). Beste Grüße!
Vielen Dank für die Info Florian!
Das ist tatsächlich an mir vorbeigegangen. Ich habe unseren Artikel entsprechend angepasst.