Autor: Christian Sommer (doc)
Informationen und mögliche Fehlerursachen beim Versenden von Emails mit Website Baker.
Die für den Versand zuständige Mailroutine wurden im Lauf der Website Baker Entwicklung mehrfach überarbeitet. Bis einschliesslich WB v2.6.4 werden ausgehende Emails über die in PHP integrierte Funktion mail() verschickt.
Leider kam es in der Vergangenheit immer wieder vor, dass per PHP mail() verschickte Emails zwar versandt wurden, beim Empfänger aber nie ankamen. Dieser Fehler ist oft auf drei Ursachen zurückzuführen:
Formfehler im Header oder Inhalt der Email führen dazu, dass die Email 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 Email erst gar nicht verschickt wird.
Ein weiterer negativer Trend ist vor allem bei vielen kostenlosen Mail Provideren wie GMX zu beobachten. Um SPAM Emails entgegenzuwirken, gehen viele kostenlose Mail Provider dazu über, die Annahme von via PHP mail() verschickten Emails komplett zu verweigern. Die Email landet somit noch nicht einmal in Ihrem Spam Ordner.
Zusammenfassung: PHP mail()
Das verschicken von Emails über PHP mail() ist sehr unzuverlässig. Auch wenn die Email von Website Baker 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 Headerinformationen zu erweitern.
Einzige Abhilfe verspricht zur Zeit nur das Versenden der Email über SMTP.
Aufgrund der negativen Erfahrungen mit PHP mail(), hat mit WB v2.6.5 die neue Email Routine PHPMailer Einzug erhalten. Die wichtigsten Features von PHPMailer seien nachfolgend kurz dargestellt:
Bei der Integration von PHPMailer in Website Baker 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 Website Baker Versionen zu gewährleisten, werden in der Grundeinstellung von v2.6.5 Emails nach wie vor über PHP mail() verschickt.
Wenn Ihr Webhoster das verschicken von Emails über einen SMTP Host ohne vorige Authentifizierung unterstützt, sollten Sie die Grundeinstellung von PHP mail() auf SMTP mail ändern. Kontaktieren Sie Ihren Webhoster und Fragen Sie Ihn nach folgenden Daten:
Wenn Sie Website Baker v2.6.5 neu installieren, haben Sie die Möglichkeit die Einstellung PHP mail() oder SMTP mail im Schritt 7 des Installations-Assistenten auszuwählen.
Sollten Sie die Version v2.6.5 über eine frühere Version von Website Baker 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 steht werden alle von WB verschickten Emails per SMTP versandt.
Um Emails in WB v2.6.5 über PHP mail() oder SMPT verschicken zu können, müssen die nachfolgenden Grundvoraussetzungen erfüllt sein:
Hinweis: GMX verwirft Emails, die als Sender (FROM:) eine GMX Adresse verwenden (vorname.nachname@gmx.de), aber nicht über einen GMX Mailsrever verschickt wurden!!!
Tip: Um solchen Fehlern zu entgehen, gebe als FROM: und Server Email: eine Emailadresse Deiner Domain, wie zum Beispiel: wbmailer@deinedomain.de
Vorschau:
In WB 2.7 kann die Auswahl SMTP oder PHP mail(), die Eingabe des SMTP Host, sowie die optionale Einstellung SMTP Authentifizierung mit Passwort und Benutzername im Backend unter dem Abschnitt Optionen eingestellt werden. Es sind dann keine Eingriffe mehr ind die Datei config.php notwendig. Einen Screenshot des Konfigurationpanel für WB 2.7 findest Du im englischsprachigen Forum.
Verlangt der Server eine SMTP Authentifizierung, müssen ein paar Zeilen PHP Code zur Datei /framework/class.wbmailer.php hinzugefügt werden. Lade die Datei per FTP herunter und öffne diese in einem Texteditor Deiner Wahl. Suche den folgendem Code Abschnitt (ab Zeile 42).
function wbmailer() {
// set method to send out emails
if(defined('WBMAILER_SMTP_HOST')) {
// sets Mailer to send messages using SMTP
$this->IsSMTP();
$this->Host = WBMAILER_SMTP_HOST; // use STMP host defined in config.php
und füge nachfolgende Zeilen hinzu:
$this->SMTPAuth = true; // SMTP with authentification
$this->Username = "xxxxxx"; // SMTP-Username
$this->Password = "xxxxxx"; // SMTP-Password
Ersetze xxxxx mit den für die SMTP Authentifizierung benötigten Benutzernamen und Passwort. Speichere die Datei und lade die modifizierte Datei wieder per FTP auf den Webserver. Zur Sicherheit sollte die Originaldatei vorher umbenannt werden. Lösche den Browsercache und melde Dich erneut am WB Backend an. Das versenden von Emails sollte nun funktionieren. Weitere Informationen findest Du in diesem Forumsbeitrag.
Copyright (c) 2007 Website Baker Hilfe Team
Text und Bilder dieser Seite unterliegen den Bestimmungen der Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Lizenz. Sie dürfen den Inhalt für nicht kommerzielle Zwecke vervielfältigen und verbreiten, solange dieser unverändert übernommen wird, der Copyright Hinweis bestehen bleibt und ein Link zu http://websitebaker.org angegeben wird.