Régler le délai d’envoi d’e-mail avec sendmail

Je vais vous expliquer comment régler sendmail pour éviter la gêne que j'ai connue sur l'un de mes serveurs durant pas mal de temps. D'ici 3 minutes, vous aurez, vous aussi, la possibilité de régler votre problème qui s'il est présent doit aussi vous agacer et ayant cherché de nombreuses heures la solution, je vous la partage.

Contexte

Sur un serveur Debian nouvellement installé avec sendmail et des sites wordpress dès que l'on demandait un mot de passe, envoyé un formulaire de contact, etc. sur les boîtes Gmail ou G Suite, il fallait systématiquement attendre 2 minutes avant de recevoir l'e-mail... Alors que sur plusieurs autres fournisseurs d'e-mail aucun soucis comme sous Yahoo, Hotmail, OVH, etc.

Les e-mails étaient bien délivrés mais avec 2 minutes de retard ça créé des frustrations et quand certains sites demandent une confirmation de l'e-mail à l'inscription, c'est très gênant dans l'expérience utilisateurs.

Mes recherches

Tout d'abord dans les logs du serveur, on avait ce genre de chose (les informations en italique ont été anonymisées) :

Jun 25 06:27:13 hostnamesm-mta[32515]: STARTTLS=client, relay=aspmx.l.google.com., version=TLSv1/SSLv3, verify=FAIL, cipher=ECDHE-RSA-AES128-GCM-SHA256, bits=128/128
Jun 25 06:27:13 ns3049103 sm-mta[32515]: v5P4PDIJ032513: to=<email@gmail.com>, delay=00:02:00, xdelay=00:02:00, mailer=esmtp, pri=168930, relay=aspmx.l.google.com. [74.125.206.26], dsn=2.0.0, stat=Sent (OK 1498364833 13si8605098wrb.329 - gsmtp)

Ce qui est important ci-dessus, c'est la valeur de delay et xdelay qui pour cette envoie d'e-mail est à 00:02:00 soit 2 minutes avant l'envoi de l'e-mail vers le serveur de Google. Sauf que dans les logs, il n'y a cette valeur de deux minutes que pour les e-mails vers Google...

Avec cette particularité, il paraît peu probable que la configuration de sendmail soit en cause, du coup on prends contact avec Google, on passe en revue quelques e-mails et dans les entêtes on voit bien que chez Google une fois l'e-mail reçu, il est distribué dans les boîtes e-mails en 0,153 seconde maximum. On demande une vérification de spam sur l'ip du serveur rien aucun problème.

Pourquoi la vérification d'IP ? Car par moments en prenant un nouveau serveur, vous pouvez avoir la malchance de vous faire attribuer une IP qui a fortement spammé... On a aussi demandé à OVH de contrôler aucun souci sur l'IP.

Appel à un ami qui est administrateur système, manque de chance lui et sendmail ça fait 2, donc je dois continuer de chercher une solution...

La solution

Rien de magique ni de très compliqué pour résoudre le problème par contre la vraie complexité fut de trouver le paramètre qu'il faut modifier dans la configuration et pour cela avoir une documentation bien fichue. Et oui car en cherchant de la documentation sur les termes : "sendmail delay" rien de concluant ou des soucis d'envoi qui n'était pas le mien.

Du coup, j'ai fini pas trouver le site suivant : https://trilug.org/~jonc/mailserver/PartIII.html qui expliquait en détail les différents paramètres de configuration. Et là il y en a un qui m'a tapé dans l'oeil immédiatement :

O Timeout.iconnect=5m - Used to weed out slow hosts. Definitely change this. I recommend trying 5 seconds (O Timeout.iconnect=5s). This value is the timeout for the initial connection. If it fails the initial connection then it moves that host to the rear of the queue and when its turn comes again in the queue it will use the more generic "Timeout.connect" value.

J'ouvre le fichier de configuration du serveur pour regarder la valeur de Timeout.iconnect et la valeur est à 2m soit 2 minutes ! Je corrige donc la valeur en 5s, relance du service sendmail un petit test de mot de passe perdu sur un Worpdress. L'e-mail arrive dans ma boite e-mail en 5 secondes...

Ce que je ne comprends toujours pas, si l'un d'entre vous à l'explication je suis preneur, pourquoi cela ne toucher que les e-mails vers Gmail...

Conclusion

Par moment, on passe du temps sur des bêtises comme ça mais ça en vaut la peine, car de notre temps 2 minutes pour délivrer un e-mail sur des sites Internet de service c'est 2 minutes de trop. Et puis je ne vais pas vous mentir, je n'aime pas me faire dominer par une configuration un peu comme un challenge, j'aime arriver à faire ce que je veux.

J'espère que cela vous aidera ! N'hésitez pas à partager l'article, ça fait toujours plaisir et ça peut aider d'autres personnes !

Si cet article vous a aidé partagez le sans hésiter !

Crédit photo : Conçu par Freepik