Wenn WordPress keine E-Mails verschicken kann

Ich hatte jetzt gerade 2 verschiedene Projekte (auf jeweils verschiedenen Webhostern), die beide standardmässig mit WordPress keine E-Mails verschicken konnten.

Grundsätzlich ein grösseres Problem für eine Website, aber meist mit relativ kleinem Aufwand zu beheben.

Schauen wir uns zuerst einmal an, warum und wo das Problem liegt:

WordPress und PHP mail()

Normalerweise benutzt WordPress ganz einfach die PHP-Funktion mail() um E-Mails zu versenden.

Wenn also keine E-Mails versendet werden können, liegt es nahe, dass irgendetwas mit dieser Funktion nicht stimmt.

Und es ist tatsächlich so, dass doch noch überraschend viele Webhosting-Anbieter die mail() Funktion bewusst deaktiviert haben.

Der Grund ist ganz einfach: Spammer.

Kleiner Exkurs:

Zu Zeiten, als Lösungen wie WordPress noch nicht so verbreitet waren, mussten Website-Betreiber für die einfachsten Funktionen noch selber programmieren. Wie eben z.B. für ein Kontaktformular.

Das Problem dabei: Wenn das Kontaktformular nicht akribisch genau abgesichert wurde, fand bestimmt früher oder später ein Spammer die Möglichkeit, seine Spam-Nachrichten über dieses Kontaktformular (und somit über dessen Server) zu versenden (wer sich etwas genauer dafür interessiert, findet hier eine detaillierte Beschreibung über die Gefahren von selbstgestrickten PHP-Kontaktformularen: http://www.php-kurs.com/e-mail-und-sicherheit.htm).

Das Problem für den Server-Betreiber: Wenn zu viele Spam-Nachrichten von einem Server versendet werden, kann dieser auf einer Blacklist landen. Und dann werden alle E-Mails von diesem Server als Spam markiert, was natürlich sehr schlecht ist.

Um sich also als Webhosting-Anbieter davor zu schützen, wird den Kunden (und somit unter Umständen auch Dir) diese Funktion gar nicht angeboten.

Meiner Meinung nach eine sehr kundenunfreundliche (und ziemlich veraltete) Praxis. In diesem Fall würde ich ernsthaft einen Hoster-Wechsel in Betracht ziehen (hier meine Meinung und Empfehlung zu den besten Schweizer Webhosting-Anbietern).

Jetzt aber zur Lösung des Problems:

Lösung: Wir bringen WordPress die Nutzung von SMTP bei

Keine Mails zu versenden ist natürlich auch keine Lösung. Deshalb sehen diese Webhosting-Anbieter für den Mail-Versand die Nutzung von SMTP vor.

SMTP ist das Protokoll das auch verwendet wird, wenn Du ganz normal „von Hand“ über Deinen E-Mail-Client eine Mail versendest.

Um Dein WordPress jetzt auf SMTP umzustellen, kannst Du ganz einfach das WP-Mail-SMTP Plugin installieren und konfigurieren. Nach der Installation findest Du das Plugin im Adminbereich unter Einstellungen – Email.

Die korrekten SMTP-Zugangsdaten (SMTP-Host/Server, Port, Benutzername und Passwort) erhältst Du von Deinem Hosting-Anbieter (bzw. das sind oft die gleichen, wie für Dein normales E-Mail-Konto).

Das war’s bereits!

Das Plugin rekonfiguriert die intern von WordPress genutzte wp_mail() Funktion, die standardmässig PHPs mail() nutzt.

Egal ob Nachrichten über Kontaktformulare, von WordPress automatisch versendete Benachrichtigungen, bis hin zu Bestellbestätigungsmails vom WooCommerce Online Shop:

Alles läuft dank dem Plugin jetzt über SMTP, aber immer noch mit Standard WordPress-Funktionalität (was somit auch alle versendeten E-Mails von gut programmierten WordPress Plugins gilt).

Fandest Du den Artikel hilfreich? Hier findest Du alle meine ausführlichen Tipps & Guides für das Erstellen von WordPress Websites.

Michael Brütsch

Webdesigner & WordPress Experte: Ich kreiere WordPress Websites, die Google liebt (aka Suchmaschinenoptimierung / SEO).

17 Gedanken zu „Wenn WordPress keine E-Mails verschicken kann“

  1. Der Artikel ist auch für mich sehr hilfreich gewesen. Allerdings in anderer Form. Auf Nachfrage beim Provider (weil der ja so böse 😉 ist und die Mail-Funktion deaktiviert hat) bekam ich eine lapidare Auskunft, die aber Sinn macht! Nämlich kann WordPress nur dann Mails versenden, wenn (beim Provider) mind. 1 E-Mail-Adresse über diese URL (WordPress) konfiguriert ist. Sprich, eine Mailadresse mit z.B. admin@wordpress-url.de (weitergeleitet auf meine eigene) löst alle Mailprobleme 🙂 – so war es dann auch!

    Wie sagt man so schön? Das Beste kommt am Schluss …

    Vielen Dank und herzliche Grüße!
    Karin

    Antworten
    • Hallo Karin,

      Vielen Dank für Deinen Kommentar und Hinweis!

      Einfach als Ergänzung: Das ist kein Standard WordPress Verhalten. Sprich, das muss der Hoster einfach so konfiguriert haben, um die Mail-Funktion etwas abzusichern. Habe ich extra kurz getestet, man weiss ja nie 😉

      Achja und spontan als Ergänzung (auch für andere Leser):

      Wenn die WordPress Website mehr als einfach nur Mails von ausgefüllten Kontaktformularen senden soll (also typischerweise z.B. Online Shops mit WooCommerce, die ja die ganzen Bestellbestätigungsmails versendet), dann würde ich sowieso den Versand via SMTP empfehlen.

      Auch wenn der Webserver die Mails verschicken kann, landen diese beim Empfänger häufiger im Spam Ordner, weil die E-Mail „verdächtig“ aussieht (die Mail wird vom Webserver geschickt, aber „tut so“ als wäre sie von info@domain.ch verschickt worden).

      Bei der Nutzung von SMTP wird das Mail tatsächlich über das info@domain.ch Mail Konto verschickt und sieht daher weniger nach Spam aus.

      Aber ja, das nur als Hinweis. Das ist auch nur ein Faktor von vielen zur Spam Erkennung. E-Mail-Server/Versand/Spam etc. ist ein ganz eigenes Thema 🙂

      Beste Grüsse,
      Michael

      Antworten
  2. Hallo,
    Ich habe da ein Problem den nicht einmal Dr. Google lösen kann.
    1. 1x Server SBS 2011 mit Exchange IP 192.168.1.5
    1x Server 2008R2 mit WordPress IP 192.168.1.15
    Der erste Server ist natürlich von außen über meine Domäne erreichbar mai.domäne.at
    Der zweite Server ist natürlich auch von außen über http://www.domäne.at erreichbar.

    2. Mein Szenario ist, ich kann aus WordPress keine e-Mails an eine Domäne senden die nicht zu mir gehört zum Beispiel:
    Wenn ich ein an info@domäne.at sende, kommt die E-Mail einwandfrei.
    Wenn ich aber eine E-Mail an jemand anderen sende der nicht zu meiner Domäne gehört, (xy@gmx.net oder xy@hotmail.com usw.), bekomme ich eine Fehlermeldung:

    ————————————————————————————————————————————–
    There was a problem while sending the test email.
    An issue was detected.
    This means your test email was unable to be sent.
    Typically this error is returned for one of the following reasons:
    – Plugin settings are incorrect (wrong SMTP settings, invalid Mailer configuration, etc).
    – Your web server is blocking the connection.
    – Your host is rejecting the connection.
    ————————————————————————————————————————————–

    3. Wenn ein User zum Beispiel sagt ich habe ein Passwort vergessen und er möchte es zurücksetzen. Bekommt er keine E-Mail. Lediglich sehe ich (admin) im Backend eine Fehlermeldung:

    ————————————————————————————————————————————–
    EMAIL DELIVERY ERROR: the plugin WP Mail SMTP v1.4.0 logged this error during the last time it tried to send an email:
    Mailer: Other SMTP
    PHPMailer was able to connect to SMTP server but failed while trying to send an email.
    Consider running an email test after fixing it.
    ————————————————————————————————————————————–
    4. Habe bereits diverse settings probiert aber es hilft nichts. SMTP Setting ist zu 100% ok da die Email intern funktionieren.

    5. Weiteres habe ich mit wp-mail.php, wp_mail_smtp.php, wp-config.php, pluggable.php und php.ini experimentiert und wieder nichts.
    Das einzige was immer funktioniert ist das die e-Mails nur an meine Domäne gehen.

    Kann mir jemand die Augen aufmachen, ich weiß nicht was ich übersehe!!!

    Danke

    Antworten
    • Hallo Jovan,

      Schwierig, scheint ein sehr spezielles Problem zu sein.

      Kannst Du denn via Webmail/E-Mail Client überhaupt Mails an externe Domains versenden? Ich nehme mal an, das funktioniert.

      So wie es aussieht, kann das „WP Mail SMTP“ Plugin sich ja mit dem SMTP Server verbinden. Es sieht also so aus, als liegt das Problem beim Mail-Server (was genau, keine Ahnung, damit kenne ich mich nicht aus).

      Ich würde einmal testweise das Ganze z.B. noch via Gmail testen, ob dort das Versenden klappt. Wenn ja, dann liegt es definitiv nicht am WordPress Plugin, sondern an der Mail-Server Konfiguration.

      Ansonsten schwierig so von aussen zu helfen.

      Beste Grüsse,
      Michael

      Antworten
  3. Ich habe alle relevanten Daten eingetragen und es mittlerweile auch schon mit verschiedene Email Postfächern, Strato, Gmail probiert, allerdings funktioniert es nicht. Jedes mal wenn man die Testmail verschicken will, lädt es ewig und bricht dann ab. Woran könnte das liegen?

    Viele Grüße

    Antworten
  4. Hallo,

    Laut meinen Serveranbieter funktioniert das Senden per PHPMail. Das wurde auch getestet mit einem PHP Script am Server direkt.

    Aber von WP raus funktioniert es immer noch nicht. Kann da sein dass irgendwelche Änderungen brauchen bis das WP checkt.

    Weil das Plugin funktioniert. Möchte aber gern so wenig wie möglich Plugin benutzen und somit auf die internen WP Mail Funktion zurück greifen.

    Welche Möglichkeiten kann ich noch testen?

    Antworten
    • Hi Daniel,

      Das ist sehr schwierig aus der Ferne zu sagen. Versuche es vielleicht einmal mit einer frischen und sauberen WordPress Installation und teste es damit. Damit Du allfällige Fehlkonfigurationen und Plugin-Konflikte etc. ausschliessen kannst.

      Wenn es immer noch nicht geht, falls möglich Deine komplette WordPress Website testweise auf ein anderes Hosting umziehen. Wenn es dort geht, dann liegt das Problem trotzdem beim Hoster, auch wenn es per PHP Script funktioniert hat (mit Hostern hatte ich schon die unglaublichsten Probleme, denen vertraue ich aus Prinzip nicht mehr 😉 ).

      Viel Erfolg und beste Grüsse,
      Michael

      Antworten
  5. Danke Michael,
    genau das denke ich auch, deshalb war für mich eigentlich auch nur wichtig, wo genau das Passwort gespeichert wird, und wie du schon sagst ist eine Speicherung in der Datenbank unbedenklich in der Hinsicht, dass wenn jmd. die Datenbank hat man eh verloren hat.
    Deshalb vielen Danke für die Erläuterung, solange das Passwort nicht im PHP Bereich vorliegt brauch ich mir keine Sorgen zu machen.

    Antworten
  6. Hallo Michael, kannst du mir und evtl. auch weiteren Leuten erklären wie es mit der Sicherheit dieser Lösung ausschaut?
    Werden die Daten meines mail Servers, der ja im Addon eingegeben werden dann im PHP bereich irgendwo in Klartext hinterlegt?
    Das wäre ja durchaus kritisch.
    Irgendwelche genaueren Erfahrungswerte dazu?

    lg Maik

    Antworten
    • Hi Maik,

      Sehr gute Frage.

      Tatsächlich wird das Passwort in Klartext gespeichert (nicht in PHP, sondern in der Datenbank). Das ist zwar grundsätzlich nicht optimal, aber auch nicht kritisch.

      Denn leider ist das technisch gar nicht anders möglich. Das muss ich etwas ausführlicher erklären:

      Normalerweise werden Passwörter mit MD5 verschlüsselt gespeichert. Aus diesem MD5 Hash bekommst Du das ursprüngliche Passwort nicht heraus. Aber das gleiche Passwort gibt immer den gleichen MD5 Hash (wenn dieser also überein stimmt, weiss das System, dass das Passwort korrekt ist).

      SMTP benötigt aber das Klartext Passwort. Wenn also das Passwort mit MD5 verschlüsselt ist, könnte man keine Mails mehr verschicken.

      Mehr Infos hier (wurde viel diskutiert): https://wordpress.org/support/topic/security-issue-password-is-exposed/

      So, warum sage ich also, dass das nicht kritisch ist?

      Wenn sich jemand Zugriff auf die Datenbank verschaffen konnte, hast Du bereits verloren.

      Wenn Du das Passwort nicht in der Datenbank speichern willst, sondern in der wp-config.php (wo auch das Passwort und Verbindungsinformationen für die Datenbank gespeichert sind), dann findest Du hier eine Anleitung dazu: http://www.dangtrinh.com/2015/10/smtp-emailing-for-wordpress-multisite.html

      Das erhöht die Sicherheit zwar nicht, ist aber interessant, wenn Du z.B. weitere Admin-Benutzer in WordPress hast, die das Passwort nicht sehen sollen.

      Zum Thema Sicherheit gäbe es noch viele andere wichtige Themen: Sichere Passwörter (so banal es klingt), Updates zeitnah einspielen, Backups, SSL Verschlüsselung, WordPress Login-Seite schützen, kein Standard „admin“ Benutzer, …

      Übrigens: Die Panama Papers Geschichte wurde teilweise durch ein nicht aktualisiertes Revolution Slider Plugin in WordPress ausgelöst (wobei eine Sicherheitslücke in Drupal ebenfalls eine Rolle gespielt haben soll – WordPress, Du bist ein wenig entlastet 😉 ).

      Das ganze Thema würde eigentlich noch einen eigenen ausführlichen Guide/Artikel verdienen… 🙂

      Beste Grüsse,
      Michael

      Antworten

Schreibe einen Kommentar

Benachrichtigung bei neuen Kommentaren (wenn Du eine E-Mail erhalten willst, sobald ich Dir geantwortet habe):