Checklist pour la vérification de l’envoi et de la livraison réussis des e-mails
Le logiciel suivant sera requis pour les vérifications ultérieures :
-
L’utilitaire host
- Debian/Ubuntu :
apt-get install bind9-host - CentOS :
yum install bind9-host
- Debian/Ubuntu :
-
Utilitaire Telnet
- Debian/Ubuntu :
apt-get install telnet - CentOS :
yum install telnet
- Debian/Ubuntu :
Enregistrement MX
L’enregistrement MX est un type d’enregistrement DNS conçu pour enregistrer les serveurs de messagerie utilisant le protocole SMTP. Cet enregistrement permet de déterminer le serveur vers lequel un e-mail doit être remis par l’agent de messagerie de l’expéditeur. Il peut y avoir plusieurs types d’enregistrements avec des priorités différentes pour un même domaine.
Vous pouvez vérifier si la messagerie fonctionne localement ou utilise un serveur de messagerie tiers en utilisant la commande host :
host -t MX example.com
Lorsque vous travaillez avec le serveur de messagerie local, la sortie s’affichera comme suit :
le courrier de example.com est géré par 10 mail.example.com.
Il convient de mentionner que l’entrée mail.example.com peut également pointer vers un autre serveur. De plus, il est nécessaire de noter que mail.example.com doit être un enregistrement A existant pointant vers le serveur depuis lequel vous envoyez les e-mails.
Vous pouvez également exécuter ces commandes pour vérifier :
host example.com
host mail.example.com
Et comparer les adresses IP vers lesquelles le domaine principal, dans ce cas example.com, et mail.example.com pointent.
Un enregistrement MX doit être configuré afin que les serveurs de messagerie puissent recevoir vos e-mails.
Exemple d’enregistrement MX :
Nom : example.com.
Type : MX
Valeur : mail.example.com.
Priorité : 10
Signature DKIM
À l’aide de FASTPANEL®, la signature DKIM peut être obtenue dans le menu de gestion → section "Mail" en cliquant sur "DKIM" en face du domaine de messagerie requis

Du côté DNS, l’enregistrement doit être ajouté comme suit :
Nom : dkim._domainkey
Type : TXT
Valeur : v=DKIM1; k=rsa; p=public_key
Voici un exemple d’enregistrement DKIM correct
dkim._domainkey TXT v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpbBQ0T2xO3/SwziunIC/IFbsxBRub6WXiu8Kc2w7uB4GVw+SAB5wSEslDJbFXQRbdV9i/Duu8EQ9xik8dbqdLVyP4iAtw34g4j6QWKcfocgK4hEkwlPFff1dzUlNQONh2riNE5KVJXuWcizm8hub7nPnl36e7OnxiL0qIU7tT1QIDAQAB
Vous trouverez plus d’informations sur DKIM à l’adresse https://wikipedia.org/wiki/DomainKeys_Identified_Mail
Enregistrement SPF
La présence d’un enregistrement SPF peut être vérifiée en exécutant la commande host. Dans ce cas, la commande ressemblera à ceci :
host -t TXT example.com
Avec une sortie comme :
example.com texte descriptif "v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all"
Notez qu’ipv6 peut ne pas être présent dans cette entrée. Dans ce cas, la signature SPF ressemblera à :
example.com texte descriptif "v=spf1 ip4:ipv4_of_your_server a mx ~all"
Il est nécessaire de souligner qu’il ne doit y avoir qu’un seul enregistrement SFP
Du côté DNS, l’enregistrement doit être ajouté comme suit :
Nom : example.com.
Type : TXT
Valeur :
v=spf1 ip4:ipv4_of_your_server ip6:ipv6_of_your_server a mx ~all
ou (si ipv6 n’est pas utilisé)
v=spf1 ip4:ipv4_of_your_server a mx ~all
Par exemple :
example.com TXT v=spf1 ip4:1.2.3.4 a mx ~all
Vous trouverez plus d’informations sur SPF à l’adresse https://wikipedia.org/wiki/Sender_Policy_Framework
Enregistrement DMARC
Dans la plupart des cas, la valeur de l’enregistrement DMARC sera la même.
Du côté DNS, l’enregistrement doit être ajouté comme suit :
Nom : _dmarc
Type : TXT
Valeur : v=DMARC1; p=none
Par exemple :
_dmarc.example.com. TXT v=DMARC1; p=none
Vous trouverez plus d’informations sur DMARC à l’adresse https://wikipedia.org/wiki/DMARC
Enregistrement PTR et hostname du serveur
L’enregistrement PTR est un enregistrement DNS inversé qui convertit une adresse IP en nom. L’objectif principal de cet enregistrement pour le serveur de messagerie est d’éliminer la majorité des spams. Cet enregistrement permet de déterminer le nom de l’hôte d’où provient un e-mail. Le plus souvent, un enregistrement PTR contient un nom de domaine utilisé sur le serveur.
L’enregistrement PTR associe une adresse IP à un nom d’hôte. Si l’enregistrement PTR n’est pas correctement spécifié, vos e-mails seront rejetés et n’atteindront pas le destinataire.
Le hostname doit être spécifié comme le nom du domaine réel pointant vers le serveur, et le PTR doit pointer vers le domaine qui, à son tour, pointe vers le serveur.
Par exemple, vous avez un domaine example.com sur votre serveur.
En exécutant la commande :
host example.com
vous pouvez obtenir la sortie :
example.com a l'adresse 1.2.3.4
le courrier de example.com est géré par 10 mail.example.com.
Pour éviter d’éventuels problèmes, il est recommandé de définir le hostname et l’enregistrement PTR comme un sous-domaine existant de second niveau, par exemple mail.example.com
Disponibilité des ports SMTP
Certains fournisseurs d’hébergement bloquent la possibilité d’utiliser les ports servant à envoyer ou recevoir des e-mails. Les ports des services de messagerie peuvent être 25, 587, 465, 143 et 993.
L’un des moyens les plus simples de vérifier la disponibilité de ces ports est d’utiliser la commande telnet.
Pour vérifier la connexion entrante depuis un serveur tiers
Exécutez la commande :
telnet ip_adress port
Par exemple, si vous essayez d’utiliser telnet vers le port 25 sur 1.2.3.4, la commande à exécuter est :
telnet 1.2.3.4 25
Si la connexion réussit, vous verrez une sortie comme :
Tentative vers 1.2.3.4...
Connecté à 1.2.3.4.
Le caractère d'échappement est '^]'.
Si la connexion échoue, la sortie ressemblera à ceci :
Connexion à 1.2.3.4 ...
Impossible d'ouvrir une connexion à l'hôte sur le port some_port : échec de la connexion
Ou :
telnet: impossible de se connecter à l'hôte distant : délai de connexion dépassé
Pour une connexion sortante
Depuis votre serveur, exécutez la commande :
telnet smtp.gmail.com 25
Si la connexion réussit, vous verrez une sortie comme :
Tentative vers 2a00:1450:4010:c0b::6c...
Connecté à smtp.gmail.com.
Le caractère d'échappement est '^]'.
220 smtp.gmail.com ESMTP j6-20020ac25506000000b004b53eb60e3csm1066162lfk.256 - gsmtp
Veuillez noter que si vous utilisez un hébergement cloud et le port 25 pour votre serveur SMTP, il est fort possible que votre fournisseur d’hébergement bloque par défaut les connexions sortantes sur le port 25. Vous trouverez ci-dessous des liens contenant des instructions sur la façon de résoudre ce problème :
- AWS : Comment supprimer la restriction sur le port 25 de mon instance Amazon EC2 ou de ma fonction AWS Lambda ?
- Azure : Résoudre les problèmes de connectivité SMTP sortante dans Azure
- GCP : Envoi d’e-mails depuis une instance
- DigitalOcean : Pourquoi SMTP est-il bloqué ?
En plus du blocage de ports par votre fournisseur d’hébergement, vous devez vérifier si les ports sur votre serveur sont fermés ou non. Prenons comme exemple iptables, qui agit comme pare-feu, dans la panneau de contrôle FASTPANEL. La commande pour vérifier s’il existe une règle pour un port spécifique, dans ce cas 25, est :
iptables-save | grep 25
Si vous n’avez pas de règle pour le port que vous souhaitez vérifier, aucune information ne sera affichée. Si vous voyez qu’il existe une règle bloquant le port du service de messagerie, vous devez supprimer cette règle avec la commande :
iptables -D rule chain
Par exemple, vous avez exécuté une commande et trouvé ce qui suit :
iptables-save | grep 25
-A INPUT -p tcp -m tcp --dport 25 -j DROP
Cette règle ne permet aucun accès à votre serveur via le port 25, ce qui empêchera l’envoi d’e-mails
Pour supprimer la règle, utilisez la commande :
iptables -D INPUT -p tcp -m tcp --dport 25 -j DROP
Cet exemple de commande vous permet de vérifier chaque port utilisé pour la messagerie
Influence d’IPv6 sur la messagerie
Si vous devez utiliser ipv6 pour vos services de messagerie, la première chose à faire est de vérifier s’il existe un enregistrement PTR pour ipv6 et si les services de messagerie écoutent sur ipv6 sur certains ports.
Vous pouvez effectuer la vérification à l’aide de la commande :
netstat -nltpp | grep tcp6
Le résultat de la sortie de cette commande sera une liste de tous les services qui utilisent ipv6, parmi lesquels vous pourrez déjà vérifier si votre service de messagerie utilise cette adresse. Malheureusement, aujourd’hui, l’utilisation d’ipv6 peut ne pas fonctionner correctement même si vous avez effectué tous les réglages correctement.
Si vous avez découvert en vérifiant les logs du service de messagerie que l’erreur est liée à ipv6 et que toute la configuration est correcte, vous pouvez désactiver l’utilisation d’ipv6 pour le service de messagerie.
Dans l’exemple d’exim4, la désactivation d’ipv6 ressemble à ceci :
-
Vérifiez si l’adresse ipv6 est utilisée pour le service avec la commande
netstat -nltp | grep exim
-
Dans le fichier de configuration
/etc/exim4/exim4.conf.template, la ligne suivante doit être ajoutée tout en haut du fichier :disable_ipv6=true
-
Enregistrez les modifications du fichier, puis redémarrez le service avec une commande telle que :
systemctl restart exim4 -
Exécutez la commande :
netstat -nltp | grep eximpour vérifier que le service ne figure plus dans la liste
Vérifier l’envoi d’e-mails à l’aide de services tiers
Après avoir vérifié tous les éléments ci-dessus, vous pouvez vérifier l’envoi d’e-mails depuis votre serveur à l’aide de ressources tierces.
L’un des services les plus pratiques et informatifs est https://www.mail-tester.com
En l’utilisant, vous pouvez vérifier la note actuelle de votre e-mail, obtenir des informations indiquant si les données définies ci-dessus sont correctes ou non, ainsi qu’obtenir une recommandation pour améliorer la note.
Pour cela, envoyez simplement un e-mail à l’adresse indiquée sur le site, puis cliquez sur "Then check your score".
