Astuces mails
Sur WordPress, les problèmes d’envoi de mail viennent en général de la configuration de la fonction PHP mail() ou de la mauvaise distribution (SPF/DKIM), voire d’un blocage côté hébergeur ou plugin. Voici en pratique comment diagnostiquer et corriger :
-
Diagnostiquer l’origine du problème
• Installer un plugin de test et de log d’emails, par exemple “Check & Log Email” ou “WP Mail Logging”.
• Envoyer un mail de test (via le plugin ou via un formulaire de contact) et vérifier si :
– Le mail apparaît dans le log du plugin.
– Il est bien transmis au serveur SMTP (si configuré).
– Il arrive dans la boîte de réception ou en spam. -
Vérifier la fonction PHP mail() et l’hébergement
• Certains hébergeurs mutualisés désactivent ou restreignent mail().
• Contactez votre hébergeur pour savoir s’il autorise l’envoi via PHP mail() ou s’il faut passer par SMTP externe.
• En local (WAMP, MAMP…) PHP mail() ne fonctionne généralement pas : utilisez directement une solution SMTP de test. -
Passer à l’envoi SMTP (recommandé)
• Installez un plugin de SMTP :
– “WP Mail SMTP” (by WPForms)
– “Post SMTP”
– “Easy WP SMTP”
• Configurez-le avec les paramètres de votre serveur SMTP :
– hôte (smtp.votredomaine.com ou smtp.gmail.com, etc.)
– port (587 TLS / 465 SSL ou 25)
– authentification : vrai
– identifiants (login/mot de passe)
– méthode de cryptage (TLS de préférence)
• Définissez l’adresse d’expéditeur (From) comme étant une adresse réellement gérée sur votre domaine (ex. contact@votredomaine.com) pour diminuer les risques de spam. -
Mettre en place les enregistrements DNS anti-spam
• SPF : indiquez quels serveurs peuvent envoyer du mail pour votre domaine.
• DKIM : signature cryptographique pour légitimer l’émetteur.
• DMARC (optionnel, mais conseillé) : politique de gestion des mails non conformes.
Exemple d’enregistrement SPF :
v=spf1 include:mailgun.org include:_spf.google.com ~all -
Utiliser un service de mails transactionnels (si volume ou fiabilité critique)
• Mailgun, SendGrid, Amazon SES, Postmark, SMTP.com…
• Ces services fournissent un SMTP ou une API HTTP, un tableau de bord de suivi, des rapports de délivrabilité.
• Intégrez-les via le plugin SMTP ou un plugin dédié (ex. “Mailgun for WordPress”). -
Vérifier la configuration de votre formulaire/contacteur
• Pour Contact Form 7, Gravity Forms, Ninja Forms… assurez-vous que le champ “From:” est une adresse du même domaine que votre site.
• N’utilisez pas comme expéditeur l’adresse du visiteur, sinon certains serveurs considèrent le mail comme usurpé. -
Tester et surveiller
• Envoyez plusieurs mails de test, variez les destinataires (Gmail, Outlook, Free…).
• Consultez vos logs d’erreur côté hébergeur (mail.log, error.log).
• Vérifiez vos boîtes spam et ajustez vos enregistrements DNS si nécessaire. -
Cas particulier : mails programmés (newsletter, relances…)
• WordPress déclenche les envois via WP-Cron. Si vous avez beaucoup d’envois, envisagez de désactiver le WP-Cron interne et d’appeler cron.php via une tâche système (cron Linux).
• Pour les newsletters, préférez un plugin ou un service spécialisé (MailPoet, Mailchimp, Mailjet…) qui gère ses propres files d’attente.