You are currently viewing Emails aus WordPress via SMTP versenden – ohne Plugin

Emails aus WordPress via SMTP versenden – ohne Plugin

Heute habe ich eine neue WordPress Installation durchgeführt. Auf einem Server, auf dem kein Mailserver installiert ist. 

Zudem gibt es manchmal das Problem, dass die Emails aus WordPress nicht versendet werden können. Der Grund kann sein, dass die Hostadresse des Absenders nicht mit dem Server, auf dem die Webseite liegt übereinstimmt.

WordPress versendet die Emails über die PHP-Mailer-Funktion. Eine Lösung wäre hier die phpmailer Funktion durch SMTP zu ersetzen.

Es gibt einige Plugins, die man nutzen kann. Jedoch die elegantere Lösung ist die “functions.php” im Themes-Ordner und die “wp-config.php im Root-Verzeichnis zu ergänzen.

Der zu ergänzende Inhalt der functions.php des aktiven Themes (/wp-content/themes/*)

				
					/* 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;
}

				
			

Der zu ergänzende Inhalt der wp-config.php (im Root-Verzeichnis der WordPress-Installation)

				
					/* 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 sollte WordPress alle Mails via SMTP versenden. 
Getestet mit WordPress 5.3.2

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

Danke fürs Teilen!

Patrick Asmus

Hallo, ich bin Patrick! Baujahr 1989, Gelsenkirchener im Osten Baden-Württembergs und Gründer dieser Seite.

Dieser Beitrag hat 2 Kommentare

  1. mady

    Danke für diese Anleitung. Wie kann ich testen ob es wirklich funktioniert?

    1. Patrick Asmus

      Ich habe einen Plugin, welcher mir beim Login eine Mail sendet. Damit könnte man es zum Beispiel testen. 🙂
      Grüße

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.