In WordPress werden an vielen verschiedenen Orten E-Mails versendet. Meistens werden sie von Plugins versendet. In den meisten davon kann man den Absender-Name („From Name“) und die E-Mail-Adresse („From Mail“) selbst festlegen. Einige E-Mails werden aber auch vom WordPress Core verwendet. Eine solche E-Mail wäre etwa die zum Zurücksetzen des Passworts. Aber auch andere Plugins schicken Mails an Nutzer oder Administratoren.
Ändern der Absender-Standardwerte
Wenn eine E-Mail versendet wird und dabei der Name und die Adresse nicht explizit gesetzt werden, dann wird immer „WordPress“ für den Namen und „wordpress@deine-domain.tld“ verwendet. Leider gibt es im Dashboard keine Einstellung um diese Werte zu ändern.
Überschreiben der Werte mit einem Filter
Es gibt zwei Filter, mit denen die Standardwerte für den Absendernamen und die E-Mail-Adresse geändert werden können. Fügt einfach folgendes in ein (MU-)Plugin ein und aktiviert es:
// Change the "from name"
function wp_email_set_from_name( $from_name ) {
return 'Dein Name';
}
add_filter( 'wp_mail_from_name', 'wp_email_set_from_name' );
// Change the "from email"
function wp_email_set_from_email( $from_email ) {
return 'dein-name@deine-domain.tld';
}
add_filter( 'wp_mail_from', 'wp_email_set_from_email' );
Das überschreibt die beiden Werte. Aber es überschreibt sie für alle E-Mails. Vermutlich nicht das, was ihr wollt. Leider werden die beiden Filter erst dann aufgerufen, wenn die Standardwerte schon gesetzt wurden. Man kann also nicht einfach prüfen, ob explizite Werte zum Senden der E-Mail verwendet wurden. Daher prüfen wir stattdessen, ob die Werte noch immer der Standardwerten entsprechen und ändern sie nur in diesem Fall:
// Change the default "from name"
function wp_email_set_from_name( $from_name ) {
if ( 'WordPress' === $from_name ) {
return 'Dein Name';
}
return $from_name;
}
add_filter( 'wp_mail_from_name', 'wp_email_set_from_name' );
// Change the default "from email"
function wp_email_set_from_email( $from_email ) {
if ( false !== strpos( $from_email, 'wordpress@' ) ) {
return 'dein-name@deine-domain.tld';
}
return $from_email;
}
add_filter( 'wp_mail_from', 'wp_email_set_from_email' );
Dies sollte also nur dann neue Werte setzen, wenn sie noch immer den Standardwerten entsprechen. Ihr könnt aber weiterhin einen anderen Namen oder eine andere E-Mail-Adressen, zum Beispiel in einem Formular-Plugin.
Fazit
Das Überschreiben der Standardwerte für den Absender-Namen und die E-Mail-Adresse kann mit Filtern umgesetzt werden. Ihr solltet dabei aber aufpassen, dass ihr es nur in den Fällen tut, in denen die Werte nicht zuvor auf einen anderen Wert schon gesetzt wurden.
Schöne Idee, die Werte nur dann zu ändern, wenn sie auf den Standardwerten stehen! Danke für das Snippet.
[…] Die Lösung ist sehr einfach. Der geschätzte Kollege Bernhard Kau hat über den hilfreichen Snippet bereits gebloggt: […]