Über die Funktion wp_mail()
kann man mit WordPress schnell und unkompliziert Mails versenden:
$to = 'mail@example.com'; // Empfänger
$subject = 'Test Subject'; // Betreff
$body = 'Test Content'; // Inhalt
$headers = ['Content-Type: text/html; charset=UTF-8'];
wp_mail($to, $subject, $body, $headers);
Tritt dabei jedoch ein Fehler auf, dann gibt die Funktion wp_mail
einfach nur 0
zurück. Den wirklichen Grund, weshalb das Versenden der Mail fehlgeschlagen ist, erfährt man dadurch nicht.
Um dies zu verbessern hilft die nachfolgende Funktion wpmail_debug()
. Tritt ein Fehler beim Versand der Mail auf, gibt diese Funktion die Fehlerbeschreibung aus:
if (!function_exists('debug_wpmail')) {
function wpmail_debug($result = false)
{
// Return, wenn Mail erfolgreich versendet wurde
if ($result) {
return;
}
global $ts_mail_errors, $phpmailer;
// Wenn $ts_mail_errors noch nicht existiert, dann erstelle es als Array
if (!isset($ts_mail_errors)) {
$ts_mail_errors = [];
}
// Wenn $phpmailer existiert, dann füge den Fehler hinzu
if (isset($phpmailer)) {
$ts_mail_errors[] = $phpmailer->ErrorInfo;
}
echo '<pre>';
print_r($ts_mail_errors);
echo '</pre>';
}
}
$to = 'mail@example.com'; // Empfänger
$subject = 'Test Subject'; // Betreff
$body = 'Test Content'; // Inhalt
$headers = ['Content-Type: text/html; charset=UTF-8'];
$result = wp_mail($to, $subject, $body, $headers);
wpmail_debug($result);
Dadurch lassen sich Fehler in der Mailkonfiguration schnell schnell und einfach identifizieren und idealerweise beheben.