Wordpress Snippet: Alle Mails loggen
Ein kleines Snippet um alle Mails in das Default Error Log zu schreiben (meistens /var/log/apache2/error.log
oä.)
<?php
/*
Plugin Name: Mail > log
Plugin URI: https://igorshp.de/2016/07/wordpress-mails-loggen/
Description: This Plugin writes all mails to the default log file
Author: Igor Scheller <igor.scheller@igorshp.de>
Version: 1.0.0
Author URI: https://igorshp.de/
*/
if (!function_exists('wp_mail')) :
function wp_mail($to, $subject, $message, $headers = '', $attachments = [])
{
$data = [
'to' => $to,
'subject' => $subject,
'message' => $message,
'headers' => $headers,
'attachments' => $attachments,
];
$message = sprintf(
'New Mail: %s',
json_encode($data)
);
error_log($message, 0);
return true;
}
endif;
Das Snippet einfach als wp-content/plugins/maillog.php
speichern und das Mail > log
Plugin aktivieren, von nun an werden alle Mails die über die wp_mail-Funktion versendet werden ins Log geschrieben.
Sollen die Mails in eine Datei geschrieben werden, einfach die Zeile error_log($message, 0);
mit error_log($message, 3, __DIR__ . '/../../mail.log');
austauschen, dadurch kannst du sie über domain.tld/mail.log
aufrufen.
Aber Achtung: Dies sollte NIE auf einem Produktivsystem aktiviert werden: Die Maillogs sind dadurch !ÖFFENTLICH! erreichbar!
Weitere Beiträge