Lorsque vous lancez votre site sous WordPress avec un serveur tout neuf, en général ça fonctionne bien, mais si il y a bien un problème récurent et sensible, ce sont les emails. Sur les offres mutualisées ou clés en main, par exemple lorsque quand vous prenez votre hébergement avec votre nom de domaine, il est rare d’avoir des problèmes.
C’est beaucoup moins vrai si vous prenez votre serveur dédié ou VPS et que vous connectez à la main votre nom de domaine dessus avec les bons enregistrement DNS. Pour que ça fonctionne, vous avez 2 solutions :
- Configurer correctement votre serveur pour qu’il puisse envoyer un email avec votre nom de domaine
- Utiliser un serveur SMTP et se connecter dessus pour envoyer des mails avec lui
Pour configurer correctement votre serveur dédié ou VPS et envoyer des mails proprement, nous verrons ça dans un futur tutoriel. C’est un peu plus technique, mais rien d’insurmontable. Aujourd’hui, nous allons plutôt faire la deuxième solution qui est beaucoup plus simple et fonctionner à coup sûr.
Je vous fais ce tutoriel, car je me suis aperçu après l’installation de Contact Form 7 sur un de mes autres projets que j’avais un souci. Lorsque je testai mon formulaire de contact, un message d’erreur était envoyé à l’utilisateur, ce n’est pas terrible … L’erreur captée par Contact Form 7, c’était que l’envoi du mail rencontrait un problème, précisément : » Le message de l’expéditeur n’a pas pu être envoyé « . Heureusement, Flamingo me récupérait bien le message, mais mon utilisateur pourrait penser que ça ne marche pas et que j’ai vraiment rien reçu. Je n’avais vraiment pas le temps pour faire de la configuration à ce moment-là et je me suis donc tourné vers la solution d’utiliser un SMTP externe.
Par défaut, WordPress cherche donc à envoyer en dur avec PHP un mail via votre serveur, mais comme mentionné au-dessus, il faut parfois faire un peu de configuration. Soit votre mail ne sortira même pas du serveur, soit il aura très peu de chance d’arriver dans la boîte de réception car mal vu par votre antispam. Tout ça à cause de la mauvaise ou absence configuration.
Pour ce tutoriel, j’utilise une boite mail OVH que j’ai eu avec un nom de domaine. À partir du moment ou vous avez les bonnes informations de serveur SMTP, votre adresse mail et votre mot de passe ça devrait parfaitement fonctionner.
On va utiliser l’extension WP Mail Bank qui est une extension WordPress qui existe depuis longtemps. Son seul défaut, c’est qu’elle ne semble plus mise à jour depuis quelque temps. Cependant j’ai testé plusieurs extensions pour utiliser un SMTP externe et c’est celle qui a fonctionné directement, gratuitement sans avoir besoin de s’inscrire nulle part.
Elle fonctionne parfaitement sur du WordPress en version récente 6.1.1 (la dernière version disponible ou j’écris ces lignes) et avec PHP 8.2 sur le serveur. J’espère que ça restera le cas pour encore longtemps, sinon je trouverai une autre solution avec le tutoriel correspondant pour vous. On peut voir qu’elle a encore eu des commentaires positifs récemment. Je suis tout à fait d’accord avec l’un des commentaires.
Effectivement, on ne devrait même pas avoir besoin d’une extension pour que ce genre de réglage indispensable … Dans une future version de WordPress peut-être !
Tester un envoi de mail directement de WordPress
Maintenant que WP Mail Bank est installée, on va pouvoir passer aux choses sérieuses. Dans un premier temps, on va se rendre sur l’extension et ensuite aller directement sur la partie « Send Test Mail ». Sans rien toucher d’autre comme réglage. Je tente donc directement d’envoyer un mail sur une adresse de mail de test :
Comme prévu, ça ne marchait pas avec Contact Form 7 et j’ai donc le même résultat, car je n’ai rien configuré sur mon serveur pour que ça marche. Sauf que cette fois, j’en sais d’ailleurs un peu plus, j’ai un beau message d’erreur très explicite. Je comprends très bien l’erreur, mais je ne souhaite pas la résoudre sur ce serveur et bel et bien utiliser un SMTP externe.
Configurer un SMTP externe pour que WordPress l’utilise pour envoyer les emails
Je rappelle que pour ce tutoriel, j’ai utilisé une boite mail chez OVH. Il faudra donc de votre côté récupérer la bonne adresse du serveur SMTP de votre prestataire et le port qu’il vous a normalement fourni avec cette configuration minimale. Attention, la configuration est très variable d’un fournisseur de mail avec SMTP à l’autre. Pour certains, l’encryptage est obligatoire et il y a en plus plusieurs protocoles disponibles. Chez d’autres, c’est beaucoup plus permissif comme avec OVH.
Normalement, vous devriez trouver facilement la configuration à entrer pour tel ou tel fournisseur de SMTP sur Internet avec votre moteur de recherche préféré.
Une fois que vous avez entré les bonnes informations pour vous connecter au serveur SMTP avec votre adresse mail, vous pouvez appuyer sur le bon suivant qui devrait envoyer un mail de test. On peut directement voir que le mail passe bien par le SMTP d’OVH :
Pour être sûr que tout est bon, je vais voir sur mon Thunderbird ce que ça donne et mon mail est bien là :
On peut aussi aller vérifier la source du mail que j’ai volontairement tronqué pour voir que le mail arrive bien par la bonne route :
Return-Path: <me@xxxxx.fr>
Delivered-To: contact@xxxxxx.fr
Received: from localhost (HELO queue) (127.0.0.1)
by localhost with SMTP; 23 Dec 2022 12:55:46 +0200
Received: from unknown (HELO outputxx.mail.ovh.net) (xxx.xxx.xxx.xxx)
by xxx.xxx.xxx.xxx with AES256-GCM-SHA384 encrypted SMTP; 23 Dec 2022 12:55:46 +0200
To: contact@xxxxx.fr
From: Mon TEST <me@xxxx.fr>
Subject: Test Email - Mail Bank
X-Mailer: Mail Bank SMTP 4.0.10 for WordPress (https://tech-banker.com/wp-mail-bank/)
Content-Type: text/html; charset=utf-8
Date: Fri, 23 Dec 2022 10:55:44 +0000
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
<p>This is a demo Email for Email Setup - Mail Bank</p>
C’est bon, c’est bien Mail Bank qui envoie le mail, c’est parfait ! Il ne nous reste plus qu’à faire un dernier test. Vérifier que c’est bien l’ensemble de l’installation WordPress qui utilise mon SMTP fraîchement connecté pour envoyer ses mails. Pour cela, on va retenter d’envoyer un mail avec le formulaire de contact, et la réponse ne se fait pas attendre :
Un joli problème de résolu non ? Pas besoin d’aller modifier le serveur, ni de changer les DNS … On a juste contourné le problème en faisant passer nos mails expédiés par WordPress sur un SMTP externe. Attention, c’est une solution comme une autre qui n’est pas parfaite et pas forcément adaptée à votre cas. Par exemple, si votre WordPress envoi beaucoup de messages, avec OVH et le plan MX de base, le nombre de messages que l’on peut envoyer avec le SMTP est limité à 200 par heure. Chez d’autres fournisseurs, ce sera plus ou moins, pensez à vérifier leurs conditions d’utilisation.
J’espère que ce tutoriel pour envoyer des emails avec votre WordPress via un SMTP distant vous aura aidé et n’hésitez pas à mettre en commentaire si vous avez d’autres extensions ou solutions pour cela. C’est fait pour ça 😉