Je développe un site WordPress sur une boîte de courrier et a installé postfix afin de tester les notifications par courrier électronique.
À ce niveau de système d'exploitation invité (Ubuntu), je peux mettre fin à un e-mail de test:
echo "Test mail from postfix" | mail -s "Test Postfix" [email protected]
Cela fonctionne et je reçois le courrier électronique. Autant que je sache, postfix utilise le binaire sendmail et je m'attendrais donc à ce que WordPress envoie les emails avec succès.
Toutefois, mes notifications de formulaire de contact ne sont pas reçues. Existe-t-il un moyen de vérifier/déboguer l'envoi d'email dans WordPress ou de vérifier quelle fonction de messagerie il utilise?
METTRE À JOUR
Après quelques recherches, j'ai découvert que wp_mail()
utilise PHPMailer. Si je débogue la fonction wp_mail()
en utilisant ce script de test, je constate que PHPMailer lève une exception:
Impossible instancier la fonction mail.
// Set $to as the email you want to send the test to
$to = "[email protected]";
// No need to make changes below this line
// Email subject and body text
$subject = 'wp_mail function test';
$message = 'This is a test of the wp_mail function: wp_mail is working';
$headers[] = 'From: Me Myself <[email protected]>';
// Load WP components, no themes
define('WP_USE_THEMES', false);
require('wp/wp-load.php');
// Call the wp_mail function, display message based on the result.
if( wp_mail( $to, $subject, $message, $headers ) ) {
// the message was sent...
echo 'The test message was sent. Check your email inbox.';
} else {
// the message was not sent...
echo 'The message was not sent!';
};
WordPress utilise la fonction wp_mail () pour envoyer un courrier. L'article du Codex indique:
Pour que cette fonction fonctionne, les paramètres SMTP et smtp_port (valeur par défaut: 25) doivent être définis dans votre fichier php.ini.
Assurez-vous également que votre formulaire de contact envoie les paramètres requis à la fonction wp_mail (). Les paramètres requis sont inclus sur la page dans le lien ci-dessus.