Dein WordPress macht Probleme beim Versenden von Emails?

Manchmal gibt es das Problem, dass die Emails aus WordPress bei verschiedenenen Anbeitern nicht ankommen. Der Grund dafür kann sein, dass der Host Adresse des Absenders nicht mit dem Server, auf dem die Webseite liegt übereinstimmt.

WordPress versendet die internen Emails über die Mailfunktion in PHP. Eine Lösung ist die phpmailer Funktion durch SMTP zu ersetzen.

Es gibt verschiedene Plugins, die man nutzen kann, die elegantere Lösung ist jedoch die function.php (im Themes-Ordner) und die wp-config.php (im Root-Ordner) zu modifizieren.

ergänzender Inhalt der function.php

 <?php // Diese Zeile nicht einsetzen! 
/** 
* Diese Funktion verbindet wp_mail mit Ihrem authentifizierten 
* SMTP-Server. Dies verbessert die Zuverlässigkeit von wp_mail, und 
* vermeidet viele potentielle Probleme. 
* 
* Die Werte sind Konstanten, die in der wp-config.php gesetzt sind. 
*/ 
add_action( 'phpmailer_init', 'send_smtp_email' );
function send_smtp_email( $phpmailer ) {
	$phpmailer->isSMTP();
	$phpmailer->Host       = SMTP_HOST;
	$phpmailer->SMTPAuth   = SMTP_AUTH;
	$phpmailer->Port       = SMTP_PORT;
	$phpmailer->Username   = SMTP_USER;
	$phpmailer->Password   = SMTP_PASS;
	$phpmailer->SMTPSecure = SMTP_SECURE;
	$phpmailer->From       = SMTP_FROM;
	$phpmailer->FromName   = SMTP_NAME;
}

ergänzender Inhalt der wp-config.php

 <?php // Diese Zeile nicht einsetzen!
/**
 * Setzen Sie folgende Konstanten in wp-config.php
 * Diese sollten irgendwo VOR der
 * Konstante ABSPATH definiert sein.
 */
define( 'SMTP_USER',   'user@example.com' );    // Benutzername für die SMTP-Authentifizierung
define( 'SMTP_PASS',   'smtp password' );       // Passwort für die SMTP-Authentifizierung
define( 'SMTP_HOST',   'smtp.example.com' );    // Der Hostname des Mailservers
define( 'SMTP_FROM',   'website@example.com' ); // SMTP Von E-Mail-Adresse
define( 'SMTP_NAME',   'e.g Website Name' );    // SMTP Von Name
define( 'SMTP_PORT',   '25' );                  // SMTP-Portnummer - wahrscheinlich 25, 465 oder 587
define( 'SMTP_SECURE', 'tls' );                 // Zu verwendendes Verschlüsselungssystem - ssl oder tls
define( 'SMTP_AUTH',    true );                 // SMTP-Authentifizierung verwenden (true|false)
define( 'SMTP_DEBUG',   0 );                    // nur für Debugging-Zwecke auf 1 oder 2 setzen

Jetzt schickt WordPress alle Emails via SMTP und die Probleme sollten behoben sein 🙂

Quelle: https://gist.github.com/butlerblog