Wer kennt es nicht? Du hast ein neues WordPress Projekt gestartet und spätestens bei Themen wie dem Kontakt Formular fällt dir auf, dass der E-Mail Versand nicht funktioniert oder nur in deinem Spam Ordner landet.
Meistens kommt auch dazu, dass Drittanbieter Dienste wie zum Beispiel Google oder Microsoft verwendet werden. Hier wird zwingend eine Verbindung benötigt, um einen sauberen E-Mail Versand zu gewährleisten.
Klar gibt es hierzu bereits zahlreiche Plugins, welche eine einfache Lösung anbieten. Da mit Abstand bekannteste Plugin aus meinem Bekanntenkreis hierfür ist WP Mail SMTP. Aber wenn wir uns den E-Mail Versand mal genauer anschauen, so fällt schnell auf, dass dies kein großes Thema ist. Also warum die WordPress Instanz mit einem weiteren Plugin „zumüllen“ das Ständig nach dem Kauf der „Pro“ Version fragt?
Absende Information überschreiben
Zu Beginn müssen wir WordPress mithilfe von zwei Filtern den Absende Namen und die Adresse mitteilen. Achte hier dabei darauf, dass die Absende Adresse für das verwendete SMTP Konto zur Verfügung steht. Sollte die Adresse fehlerhaft angegeben werden, so ist möglicherweise ein Versand der E-Mail nicht gewährleistet oder ggf. landet diese beim Empfänger im Spam Ordner oder wird direkt vom Server abgelehnt.
Absender Name
add_filter('wp_mail_from', static function () {
return "Max Mustermann";
});
Absender Adresse
add_filter('wp_mail_from_name', static function () {
return "max.mustermann@domain.tld"
});
SMTP Authentifizierung
add_action('phpmailer_init', static function ($phpmailer) {
$phpmailer->IsSMTP();
$phpmailer->Host = "smtp.google.com";
$phpmailer->Port = 587;
$phpmailer->From = "Max Musterman";
$phpmailer->FromName = "max.mustermann@domain.tld";
$phpmailer->SMTPAuth = true;
$phpmailer->Username = "max.mustermann@domain.tld";
$phpmailer->Password = "geheim123!";
$phpmailer->SMTPSecure = true;
$phpmailer->Mailer = 'smtp';
$phpmailer->ClearReplyTos();
$phpmailer->addReplyTo(get_option("Administrator der Webseite XY"), get_option("admin_email"));
});
Tipp: Spam Score Testen
Mit Plattformen wie https://www.mail-tester.com/ kannst du testen, ob deine E-Mail Konfiguration samt Inhalt einer Nachricht als Spam gekennzeichnet wird.
Beispiel Repository mit kompletten Code
Hier findest du nochmal den gezeigten Code in Form eines minimalistisch umgesetzten Plugins auf GitHub mit einer Admin Seite für das hinterlegen der SMTP Informationen.
https://github.com/marioke/WordPress-SMTP
Fazit
Wie du siehst ist die Implementierung einer eigenen SMTP E-Mail Versand Lösung mit keinen großen Aufwand verbunden. Somit sparst du Dir die unnötige Installation von Drittanbieter Plugins und kannst deine WordPress Installation sauber und schlank halten.