Aller au contenu principal

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
  • Utilitaire Telnet

    • Debian/Ubuntu : apt-get install telnet
    • CentOS : yum install telnet

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.

important

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

Activer DKIM dans FASTPANEL

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"

remarque

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 :

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 :

  1. Vérifiez si l’adresse ipv6 est utilisée pour le service avec la commande

    netstat -nltp | grep exim

    Vérifier si l’adresse ipv6 est utilisée par exim

  2. 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

  3. Enregistrez les modifications du fichier, puis redémarrez le service avec une commande telle que :

    systemctl restart exim4
  4. Exécutez la commande :

    netstat -nltp | grep exim

    pour vérifier que le service ne figure plus dans la liste

    Vérifier si ipv6 est désactivé pour exim

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".

Testez votre e-mail avec mail-tester