Mails kommen nicht an

Autor: Christian Sommer (doc)

E-Mails in WB 2.5.x - 2.6.4

Die für den Versand zuständige Mailroutine wurde im Lauf der WebsiteBaker Entwicklung mehrfach überarbeitet. Bis einschliesslich WB v2.6.4 wurden ausgehende E-Mails über die in PHP integrierte Funktion mail() verschickt.

Nachteile der PHP Funktion mail()

Leider kam es in der Vergangenheit immer wieder vor, dass per PHP mail() verschickte E-Mails zwar versandt wurden, beim Empfänger aber nie ankamen. Dieser Fehler ist meistens auf drei Ursachen zurückzuführen:

  • Formfehler im Header oder Inhalt der E-Mail (z.B. Zeilenumbruch Windows/Unix)
  • Falsche Konfiguration der Sendmail Routine in der php.ini
  • Ihr Mail Provider (z.B. GMX) nimmt generell keine via PHP mail() verschickten E-Mails entgegen

Formfehler im Header oder Inhalt der E-Mail führen dazu, dass die E-Mail als Spam eingeordnet wird und somit im Spam-Ordner landet, an den Absender zurückgeschickt oder gar kommentarlos gelöscht wird. Eine falsche Konfiguration von Sendmail hat zur Folge, dass Ihre E-Mail erst gar nicht verschickt wird.

Ein weiterer negativer Trend ist vor allem bei vielen kostenlosen Mail Providern wie GMX zu beobachten. Um Spam E-Mails entgegenzuwirken gehen viele kostenlose Mail Provider dazu über, die Annahme von via PHP mail() verschickten E-Mails komplett zu verweigern. Die E-Mail landet somit noch nicht einmal in Ihrem Spam Ordner.

Zusammenfassung: PHP mail()
Das Verschicken von E-Mails über PHP mail() ist sehr unzuverlässig. Auch wenn die E-Mail von WebsiteBaker verschickt wurde, kann nicht gewährleistet werden, dass diese auch beim Empfänger ankommt.
Nach zahlreichen Tests hilft es auch nicht das PHP Skript um ein paar Header-Informationen zu erweitern.
Abhilfe verspricht zur Zeit nur das Versenden der E-Mail über SMTP.

E-Mails ab WB 2.6.5

Aufgrund der negativen Erfahrungen mit PHP mail() hat mit WB v2.6.5 die neue E-Mail Routine PHPMailer Einzug gehalten. Die wichtigsten Features von PHPMailer seien nachfolgend kurz dargestellt:

  • Wahlweise Versandt über PHP mail() oder SMTP Server möglich
  • SMTP Authentifizierung (Passwort und Benutzername)
  • Mehrere TOs, CCs, BCCs und REPLY-TOs Adressen möglich
  • Plattform unabhängig (Linux/Unix/Mac/Windows)
  • Möglichkeit Anhänge zu verschicken
  • HTML formatierte E-Mails möglich

Bei der Integration von PHPMailer in WebsiteBaker wurde darauf geachtet, dass keine Änderungen an bestehenden Funktionen, Templates oder integrierten Modulen (wie z.B. das Form Modul) vorgenommen werden mussten.

Um die Abwärtskompatibilität mit vorherigen WebsiteBaker Versionen zu gewährleisten, werden in der Grundeinstellung von v2.6.5 E-Mails nach wie vor über PHP mail() verschickt.

E-Mails per SMTP versenden

Wenn Ihr Webhoster das verschicken von E-Mails über einen SMTP Host ohne vorige Authentifizierung unterstützt, sollten Sie die Grundeinstellung von PHP mail() auf SMTP ändern. Kontaktieren Sie Ihren Webhoster und fragen Sie ihn nach folgenden Daten:

  • SMTP Host Adresse (z.B. smtp.yourdomain.com)
  • Vergewissern Sie sich, dass keine SMTP Authentifizierung erforderlich ist

Wenn Sie WebsiteBaker v2.6.5 neu installieren, haben Sie die Möglichkeit die Einstellung PHP mail() oder SMTP im Schritt 7 des Installations-Assistenten auszuwählen.

Sollten Sie die Version v2.6.5 über eine frühere Version von WebsiteBaker kopiert haben, müssen Sie eine Zeile in die Datei config.php im Hauptverzeichnis Ihrer WB Installation hinzufügen, um SMTP zu aktivieren. Laden Sie dazu die Datei config.php mit einem FTP Programm von Ihrem Webserver herunter. Öffnen Sie die heruntergeladene Datei mit einem beliebigen Texteditor und fügen Sie nachfolgende Zeile hinzu:

define('WBMAILER_SMTP_HOST',
 'smtp.yourdomain.com');

Der Ausdruck smtp.yourdomain.com muss dabei durch den SMTP Host Ihres Webservers ersetzt werden. Laden Sie die geänderte config.php Datei per FTP auf Ihren Webserver. Ab sofort werden alle von WB verschickten E-Mails per SMTP versandt.

Voraussetzungen für den erfolgreichen E-Mail Versand

Um E-Mails in WB v2.6.5 über PHP mail() oder SMPT verschicken zu können, müssen die nachfolgenden Grundvoraussetzungen erfüllt sein:

  • Formal gültige FROM: E-Mail Adresse
  • Mindestens eine formal gültige TO: E-Mail Adresse
  • Formal gültige Server E-Mail Adresse (unter: Backend -> Optionen -> Erweiterte Optionen)
Hinweis:
GMX verwirft E-Mails, die als Sender (FROM:) eine GMX Adresse (vorname(dot)nachname(at)gmx(dot)de) verwenden und nicht über einen GMX Mailserver verschickt wurden.

Tipp:
Um solchen Fehlern zu entgehen geben Sie am besten als "FROM:" und "Server E-Mail:" eine E-Mail Adresse Ihrer Domain an, wie zum Beispiel wbmailer(at)ihredomain(dot)de

Vorschau:
Seit WB 2.7 kann die Auswahl SMTP oder PHP mail(), die Eingabe des SMTP Hosts sowie die optionale Einstellung SMTP Authentifizierung mit Passwort und Benutzername im Backend unter dem Abschnitt Optionen eingestellt werden.

img Optionen Email Einstellungen