amargolf@bst-systemtechnik.de

Trotz einiger kleiner Schwächen ist WordPress ein durchaus mächtiges Content Management System, die Core Programmierer haben ganze Arbeit geleistet. Was mir allerdings nicht einleuchtet ist das kratzbürstige Mail Handling für die WordPress Kontakt Pages, Kommentarbenachrichtigungen und was damit zusammenhängt. Gerade auf Windows Mailservern ist es mitunter schwierig die PHP-Funktion mail() zum korrekten Funktionieren zu bewegen. Weshalb man hier nicht, wie bei Joomla, alternativ den Versand per SMTP anbietet ist mir schleierhaft, da dies ohne großen Aufwand in den Core zu integrieren wäre. Zwar gibt es schon einige Plugins, die genau dies leisten, die aber natürlich auch das WordPress System mit ihren überfrachteten Funktionen aufblähen. Und das muss nicht sein, wie das folgende kleine Code-Snippet zeigt.

Selbstverständlich verbietet es sich Änderungen direkt im Code von WordPress vorzunehmen, denn dies würde beim nächsten Update einfach überschrieben. Also zeige ich euch wie ihr euer erstes echtes WordPress Plugin mit schlanken 18 Zeilen Code schreibt, denn der

WordPress SMTP Mailversand ist simple

Hierzu muss lediglich im ersten Schritt im Plugin Verzeichnis  „wp-content/plugins“ ein neues Unterverzeichnis bst-smtp mit einem geeigneten FTP Programm erstellt werden. Den Namen solltet ihr nicht verändern, da WordPress den Verzeichnisnamen zur Updatesuche heranzieht.

Im Zweiten Schritt erstellt ihr in diesem Verzeichnis die Datei bst_smtp.php mit folgendem Inhalt :

<?php
/*
Plugin Name: BST WordPress SMTP Mail
Description: Versenden von Mails via SMTP Protokoll
Version: 1.0
Author: Arnold Margolf
Author URL: https://www.datenspektakel.de
Copyright 2013 by Arnold Margolf (amargolf@bst-systemtechnik.de)
*/
function wp_mail_smtp($phpmailer) {
$phpmailer->IsSMTP(); // SMTP als Standard festlegen
$phpmailer->Host       = "mail.deinedomain.tld";      // SMTP Server Host
$phpmailer->Port       = 25;                     // SMTP Server Port (Standard ist 25)
$phpmailer->SMTPAuth   = true;                    // SMTP Authentication aktivieren
$phpmailer->Username   = "user@deinedomain.tld"; // SMTP User festlegen
$phpmailer->Password   = "pass";        // Das Passwort für den User
}
add_action( 'phpmailer_init', 'wp_mail_smtp' );

Die Zuweisungen zu Host, Port, Username und Password ersetzt ihr mit den Angaben zu eurem SMTP Server. Und Bingo, damit habt ihr euer erstes eigenes Plugin erstellt, welches sich nahtlos in die Administrationsoberfläche von WordPress eingliedert und nur noch aktiviert werden muss.

Ihr könnt das Verzeichnis und die Datei natürlich auch lokal erstellen, bearbeiten und anschließend in das Plugin-Verzeichnis „wp-content/plugins“ hochladen.

Diese Lösung hat sich bei mir in ihrer Einfachheit bewährt und ist schon bei vielen Projekten zum Einsatz gekommen.

Sollte Ihnen das Angebot gefallen, empfehlen Sie es gerne weiter.
Like Button, der nicht nach Hause telefoniert

4 Kommentare

  1. 22. August 2013 at 13:54

    Danke.
    Ich werde es probieren.

  2. Darakoba-Reply
    25. November 2013 at 09:49

    Danke!

    Habe das Script und die Verzeichnisse erstellt, kopiert und aktiviert. Hat alles prima geklappt. Aber wie geht es dann weiter?

    Ich möchte mit ContactForm7 Emails versenden, das klappt aktuelle nicht. Es kommt die Meldung:
    „Die Nachricht konnte nicht gesendet werden. Bitte versuchen Sie es noch einmal zu einem späteren Zeitpunkt oder informieren Sie den Administrator der Webseite.“

    Wie bringe ich ContactForm7 dazu smtpMail zu verwenden?

    Danke + Gruß

    Darakoba

  3. 12. September 2014 at 11:04

    Ich möchte mit ContactForm7 Emails versenden, das klappt aktuelle nicht. Es kommt die Meldung:
    “Die Nachricht konnte nicht gesendet werden. Bitte versuchen Sie es noch einmal zu einem späteren Zeitpunkt oder informieren Sie den Administrator der Webseite.”

    Wie bringe ich ContactForm7 dazu smtpMail zu verwenden?

    Danke + Gruß

  4. 27. Dezember 2014 at 00:39

    Danke für den Tipp.
    Jedoch fehlt in der letzten Zeile der Funktion das „return“:

    function wp_mail_smtp($phpmailer) {
    $phpmailer->IsSMTP(); // SMTP als Standard festlegen
    $phpmailer->Host = "akbyte.com"; // SMTP Server Host
    $phpmailer->Port = 25; // SMTP Server Port (Standard ist 25)
    $phpmailer->SMTPAuth = true; // SMTP Authentication aktivieren
    $phpmailer->SMTPSecure = "tls";
    $phpmailer->Username = "test@akbyte.com"; // SMTP User festlegen
    $phpmailer->Password = "123"; // Das Passwort für den User
    return $phpmailer;
    }
    add_action( 'phpmailer_init', 'wp_mail_smtp' );

    Mittels „SMTPSecure“ lässt sich noch die Verschlüsselung festlegen 🙂

Schreiben sie einen Kommentar

Lösen sie folgende kleine Aufgabe zur Spamvermeidung *

#07A6D0#CCCCCC1
Wir benutzen Cookies um die Nutzerfreundlickeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.