Mir ist mal wieder ein Problem aufgefallen, welches mit Google und seinem Regulationanspruch zusammen hängt. Es ist nämlich so, dass manche WP-Systeme keine Mails an Google-Empfänger verschicken können. Man bekommt dann in der Logdateie eine Fehlermeldung wie:
<ein-user@gmail.com>: host gmail-smtp-in.l.google.com[142.251.175.26] said: 550-5.7.26 This mail is unauthenticated, which poses a security risk to the 550-5.7.26 sender and Gmail users, and has been blocked. The sender must 550-5.7.26 authenticate with at least one of SPF or DKIM. For this message, 550-5.7.26 DKIM checks did not pass and SPF check for [h2412yxyz.stratoserver.ne 550-5.7.26 t] did not pass with ip: [85.214.x.y]. The sender should visit 550-5.7.26 https://support.google.com/mail/answer/81126#authentication for 550 5.7.26 instructions on setting up authentication. s24-20020a632158000000b0055acc7f8088si4258738pgm.301 - gsmtp (in reply to end of DATA command)
Das hat schon eine gewisse Berechtigung, weil das WordPress-System hier keine sinnvolle Absenderadresse gesetzt hat, sondern www-data als Absender genommen hat. Das ergänzt das Mailsystem dann noch um den Servernamen. Damit schlagen dann die genannten Checks fehl.
Zur Beseitigung des Problems gibt es mehrere Möglichkeiten:
- Nutzung eines Plugins wie WP Mail SMTP/
- Anpassung der functions.php
Das vielgelobte Plugin hat mich genervet, weil es gleich eine Pro-Version anbietet. Ich habe also unter Design -> Theme-Datei-Editor die Datei functions.php (Theme-funktionen) um die folgenden Zeilen erweitert (einfach angehängt):
// Mail Hook mail_from add_filter( 'wp_mail_from', function ( $original_email_address ) { return 'testpress@meine-domain.de'; } ); // Mail Hook mail_from_name add_filter( 'wp_mail_from_name', function ( $original_email_from ) { return 'Testpress'; } ); //Action Hook phpmailer_init add_action( 'phpmailer_init', 'my_phpmailer_init' ); function my_phpmailer_init( $phpmailer ) { $phpmailer->Sender = $phpmailer->From; }
Die beiden Mail-Hooks setzten die Absender-Adresse auf einen gewünschten Wert, wobei der Hook eigentlich eine funcion einbindet, die hier jeweils gleich integriert ist. In vielen Beschreibungen ist das auch getrennt (https://wordpress.org/support/topic/change-sender-name-and-email-address-wordpress/) .
Diese Einstellungen reichen aber nicht aus, weil damit die Adresse im Envelope (Umschlag) nicht geändert wird und das ist die entscheidende Stelle. Dafür gibt es einen Action-Hook, über den man die Initialisierung des Mailers vornehmen kann. Hier ändern wir nur den Wert für Sender und zwar auf den gerade davor gesetzten Wert von From.
Auch wenn innerhalb der WordPress Options, eventuelle durch eine Erweiterung, eine Mailadresse gesetzt ist, wie z.B. wpmembers_email_wpfrom, so wird die erst durch die se Initialisierung aktiv.
Damit sollten jetzt auch Mails an z.B. Google-Adressen funktionieren, sofern der eingestellte Absender grundsätzlich entsprechende Mails verschicken kann.
Damit die Änderung nicht bei nächsten Update des Themes überschieben wird, sollte man ein Child-Theme anlegen, in dem diese Ergänzung realisiert wird.
Weitere Informationen:
https://developer.wordpress.org/reference/hooks/wp_mail_from/
https://developer.wordpress.org/reference/hooks/wp_mail_from_name/
https://developer.wordpress.org/reference/hooks/phpmailer_init/