
WordPress versendet E-Mails standardmäßig über die PHP-Mail-Funktion, und genau deshalb landen die Antworten auf Ihr Kontaktformular und Ihre Bestell-E-Mails immer wieder im Spam-Ordner. Die Lösung ist authentifiziertes SMTP, und dafür benötigen Sie kein Plugin.
Zwei kleine Codeausschnitte – einer in der Datei „wp-config.php“ und einer in der Datei „functions.php“ – leiten jede E-Mail, die Ihre Website versendet, über einen echten Mailserver weiter. Ich werde Ihnen beide Schritte erläutern, einschließlich des Schritts mit dem App-Passwort, den die meisten Anleitungen überspringen.
Wichtigste Erkenntnisse
- WordPress versendet E-Mails standardmäßig über die PHP-Funktion „mail()“ ohne Authentifizierung, weshalb E-Mails der Website so oft im Spam-Ordner landen.
- Für die manuelle SMTP-Konfiguration sind zwei Codeausschnitte erforderlich: Verbindungskonstanten in der Datei „wp-config.php“ und ein „phpmailer_init“-Hook in der Datei „functions.php“.
- Für Gmail müssen Sie bei der 2-Stufen-Verifizierung ein App-Passwort verwenden; Ihr normales Kontopasswort funktioniert nicht.
- Port 587 mit TLS ist die sichere Standardeinstellung; die Absenderadresse sollte demselben Konto entsprechen, mit dem Sie sich authentifizieren.
- SMTP macht nur die Hälfte der Zustellbarkeit aus; SPF-, DKIM- und DMARC-Einträge für Ihre Domain sorgen für die andere Hälfte.
- Bei der kostenlosen Gmail-Version ist der Versand auf etwa 500 Nachrichten pro Tag begrenzt – das reicht zwar für Website-Benachrichtigungen, nicht aber für Newsletter.
Warum WordPress-E-Mails im Spam-Ordner landen
Standardmäßig übergibt wp_mail() Ihre E-Mail an die PHP-Mail-Funktion des Webservers, die sie ohne jegliche Authentifizierung versendet. Die empfangenden Server sehen eine Nachricht von einem beliebigen Webhost, der vorgibt, Ihre Domain zu sein, und begegnen dieser Behauptung mit Misstrauen, sodass die E-Mail gefiltert oder stillschweigend verworfen wird.
SMTP löst das Vertrauensproblem. Ihre Website meldet sich mit einem Benutzernamen und einem Passwort bei einem echten Mailserver an, und die Empfängerseite sieht einen authentifizierten Absender anstelle eines anonymen. Dieselbe E-Mail, völlig unterschiedliche Reaktionen.

Schritt 1: Fügen Sie die SMTP-Konstanten in die Datei „wp-config.php“ ein
Öffnen Sie die Datei „wp-config.php“ im Stammverzeichnis Ihrer Website (über den Dateimanager, per FTP oder SSH) und fügen Sie diesen Block an einer beliebigen Stelle oberhalb der Zeile ein, die lautet: /* Das war's, keine Änderungen mehr! Viel Spaß beim Bloggen. */:
// SMTP-E-Mail-Einstellungen
define( 'SMTP_USERNAME', 'you@yourdomain.com' );
define( 'SMTP_PASSWORD', 'Ihr-App-Passwort' );
define( 'SMTP_SERVER', 'smtp.gmail.com' );
define( 'SMTP_FROM', 'you@yourdomain.com' );
define( 'SMTP_NAME', 'Name Ihrer Website' );
define( 'SMTP_PORT', '587' );
define( 'SMTP_SECURE', 'tls' );
define( 'SMTP_AUTH', true );
define( 'SMTP_DEBUG', 0 );Geben Sie Ihren eigenen Mailserver, Ihre E-Mail-Adresse und Ihr Passwort ein; die hier angegebenen Gmail-Werte dienen lediglich als gängiges Beispiel. Zwei Details sind wichtiger, als man denkt. Beachten Sie SMTP_FROM mit demselben Konto, mit dem Sie sich anmelden, da viele Server E-Mails ablehnen, bei denen die Absenderadresse nicht mit dem Anmeldedaten übereinstimmt. Behandeln Sie dieses Passwort wie das Datenbankpasswort der Website, da die Datei „wp-config.php“ ebenso sensibel ist.
Schritt 2: PHPMailer in der Datei „functions.php“ einbinden
Die Konstanten allein bewirken nichts; WordPress muss angewiesen werden, sie zu verwenden. Das ist die Aufgabe der phpmailer_init-Hook, das immer dann ausgeführt wird, wenn eine E-Mail die Website verlässt. Fügen Sie dies in die Datei „functions.php“ Ihres aktiven Themes ein, am besten in einem Child-Theme Damit es bei einem Theme-Update nicht gelöscht wird:
add_action( 'phpmailer_init', 'wpc_phpmailer_smtp' );
function wpc_phpmailer_smtp( $phpmailer ) {
$phpmailer->isSMTP();
$phpmailer->Host = SMTP_SERVER;
$phpmailer->SMTPAuth = SMTP_AUTH;
$phpmailer->Port = SMTP_PORT;
$phpmailer->Username = SMTP_USERNAME;
$phpmailer->Password = SMTP_PASSWORD;
$phpmailer->SMTPSecure = SMTP_SECURE;
$phpmailer->From = SMTP_FROM;
$phpmailer->FromName = SMTP_NAME;
}Ab sofort wird alles, was über wp_mail() läuft – also Passwort-Zurücksetzungen, Benachrichtigungen über Kontaktformulare und WooCommerce-Bestell-E-Mails – über Ihre authentifizierte Verbindung versendet. Hier sehen Sie, was die einzelnen Konstanten konkret steuern:
| Konstante | Was sie kontrolliert | Typischer Wert |
|---|---|---|
| SMTP_SERVER | Der Mailserver, bei dem sich Ihre Website anmeldet | smtp.gmail.com oder der Server Ihres Hosting-Anbieters |
| SMTP_PORT / SMTP_SECURE | Verbindungsport und Verschlüsselungspaar | 587 mit TLS (oder 465 mit SSL) |
| SMTP_USERNAME / SMTP_PASSWORD | Das Konto, mit dem die Website die Authentifizierung durchführt, lautet | Ihr E-Mail-Konto und dessen App-Passwort |
| SMTP_FROM / SMTP_NAME | Die angezeigte Absenderadresse und der Name | Gleiche Adresse wie der Benutzername |
| SMTP_DEBUG | Protokollierung von Verbindungen zur Fehlerbehebung | 0 in Produktion, 2 im Testbetrieb |
Verwendung von Gmail-SMTP: App-Passwörter und Versandbeschränkungen
Wenn Sie Gmail als Server verwenden, funktioniert Ihr normales Kontopasswort nicht; Google verlangt eine zweistufige Verifizierung sowie ein spezielles App-Passwort für Verbindungen wie diese. Erstellen Sie einen solchen Code in den Sicherheitseinstellungen Ihres Google-Kontos und fügen Sie diesen 16-stelligen Code in SMTP_PASSWORD.
Achten Sie auch auf die Lautstärke. Googles Versandlimits Ein kostenloses Konto ist auf etwa 500 Nachrichten pro Tag begrenzt, was für Passwort-Zurücksetzungen und Bestellbenachrichtigungen völlig ausreicht, für Newsletter jedoch ungeeignet ist. Für den Massenversand sollten Sie stattdessen einen Transaktions-E-Mail-Dienst oder den Mailserver Ihres Hosts nutzen.
Testen Sie Ihre SMTP-Konfiguration, bevor Sie sich darauf verlassen
Gehen Sie nicht einfach davon aus, dass die Codeausschnitte funktionieren – überprüfen Sie es. Der schnellste Test ohne Plug-in besteht darin, eine E-Mail zur Passwortzurücksetzung an sich selbst auszulösen, anschließend die Nachrichtendetails in Gmail zu öffnen und die Zeilen „Gesendet von“ und „Unterzeichnet von“ zu überprüfen, in denen nun Ihr Mailserver statt des Webhosts angezeigt werden sollte.
Falls nichts eintrifft, stelle ein SMTP_DEBUG vorübergehend auf 2 setzen und die E-Mail erneut auslösen; im Verbindungsprotokoll wird das Problem in der Regel direkt benannt, meist handelt es sich um ein falsches Passwort oder einen blockierten Port. Denken Sie daran, dass auch von WordPress geplante E-Mails (wie WooCommerce-Verlängerungen) davon abhängen, dass Cron ausgeführt wird – ein separater Fehlerpunkt, den ich in Behebung fehlender WooCommerce-E-Mails mit einem echten Cron-Job.
SMTP ist nur die Hälfte der E-Mail-Zustellbarkeit
Die Authentifizierung verschafft Ihnen zwar Zugang, aber E-Mail-Anbieter prüfen zudem, ob Ihre Domain für den Absender bürgt. Dies geschieht mithilfe von drei DNS-Einträgen: SPF listet die Server auf, die für Ihre Domain Daten versenden dürfen, DKIM signiert jede Nachricht, sodass Manipulationen erkennbar sind, und DMARC gibt den Empfängern Anweisungen, was zu tun ist, wenn die ersten beiden Schritte fehlschlagen.
Wenn Sie E-Mails von Ihrer eigenen Domain versenden, nehmen Sie sich die zusätzlichen zwanzig Minuten Zeit, um diese Einträge bei Ihrem DNS-Host hinzuzufügen, denn Gmail und die anderen großen Anbieter messen diesen Einträgen mittlerweile große Bedeutung bei. Eine einwandfrei authentifizierte SMTP-Verbindung von einer Domain ohne SPF oder DKIM wirkt auf einen Spamfilter immer noch unvollständig.
Manuelle SMTP-Einrichtung von Anfang bis Ende
- Füge die SMTP-Konstanten zur Datei „wp-config.php“ hinzu
- PHPMailer in der Datei „functions.php“ einbinden
- Erstellen Sie das App-Passwort für Ihr E-Mail-Konto
- Senden Sie eine Test-E-Mail und überprüfen Sie die Header
- Fügen Sie SPF, DKIM und DMARC bei Ihrem DNS-Host hinzu
Wann ein SMTP-Plugin die bessere Wahl ist
Der manuelle Weg ist nicht immer der richtige, und es wäre unehrlich, so zu tun, als wäre es anders. Wenn Sie die Website mit nicht-technischem Personal verwalten, OAuth anstelle von App-Passwörtern bevorzugen oder ein E-Mail-Protokoll benötigen, das Sie einem Kunden vorlegen können, ist ein dediziertes SMTP-Plugin hat sich seinen Platz verdient. Die beiden oben genannten Code-Schnipsel erfüllen dieselbe Kernaufgabe ohne jeglichen Plugin-Overhead, weshalb ich sie auf schlanken Websites bevorzuge.
Lohnt sich also die manuelle SMTP-Einrichtung gegenüber einem Plugin?
Meiner Meinung nach ja – zumindest für die meisten Betreiber einer einzelnen Website –, denn die manuelle Einrichtung besteht aus zwei Code-Schnipseln, die man einmal schreibt und dann nie wieder anfassen muss, ohne dass man ein zusätzliches Plugin aktualisieren muss oder dieses irgendwann nicht mehr unterstützt wird. Die Plugin-Variante ist die bessere Wahl, wenn man Protokollierung, OAuth oder eine Benutzeroberfläche benötigt, die auch andere bedienen können.
So oder so: Belassen Sie es nicht bei SMTP. Die Websites, deren E-Mails zuverlässig im Posteingang landen, sind diejenigen, die auch SPF, DKIM und DMARC eingerichtet haben – und das hat nichts damit zu tun, für welche Methode Sie sich entschieden haben.
Haben Sie immer noch Probleme mit E-Mails, die im Spam-Ordner landen?
Falls Ihre WordPress-E-Mails verschwinden oder die SMTP-Verbindung nicht funktioniert, kontaktieren Sie uns oder E-Mail und ich werde dir dabei helfen, die Ursache zu finden. Eine zuverlässige E-Mail-Funktion gehört zu den Dingen, die man an einer Website erst dann zu schätzen weiß, wenn sie nicht mehr funktioniert.
Änderungsprotokolle
05. Juli 2026
- Die Anleitung wurde überarbeitet und enthält nun Informationen zur erforderlichen App-Passwort-Funktion von Gmail, eine Möglichkeit zum Testen der Verbindung ohne Plug-in sowie die SPF-, DKIM- und DMARC-Einträge, die für eine erfolgreiche Zustellung sorgen.
Möchtest du, dass unsere Beiträge öfter bei Google erscheinen?
Ein Schritt – und Google zeigt diese Seite in Ihren „Top Stories“ an.
