URL: https://linuxfr.org/news/supervision-smtp-imap Title: « Supervision » SMTP & IMAP Authors: Philippe GRAILLE Ysabeau Date: 2022-03-15T18:00:55+01:00 License: CC By-SA Tags: smtp et imap Score: 4 Bonjour, Prélude ======= J’ai mis « Supervision » entre guillemets car c’est un peu prétentieux vu l’outil. Introduction ============ Il vous est certainement arrivé de constater des indisponibilités ou des lenteurs de votre boite email. Quand c’est occasionnel on patiente, quand c’est récurrent on contacte le support client de l’hébergeur. Le dialogue avec le support des différents opérateurs/hébergeurs est souvent compliqué sur ce genre de problème de qualité et d’évènements intermittents. Afin de pouvoir dialoguer avec eux et avoir une vue objective, il faut quantifier et avoir des données fiables. D’où le développement de ce petit outil qui teste les connexions à un ou plusieurs serveurs SMTP/IMAP et génère un historique. ---- [Source et Package de l'outil](https://github.com/GPh83/MailServerMonitor) ---- Principe ======== On interroge le serveur et on journalise le succès et le temps de réponse. Concrètement, cela envoie un e-mail en SMTP à sa propre adresse et ensuite ça l’efface en IMAP. On valide donc le fonctionnement (liaison et authentification) et on mesure les temps pour les deux protocoles. L’outil se contente de générer les données sous forme d’un historique au format CSV. Chacun pourra ainsi l’exploiter avec un tableur (Libre Office Calc, Excel, OnlyOffice, Calligra Sheets, etc.) pour obtenir ce qui l’intéresse (temps de réponse moyen/max/min) ou taux d’erreur… Usage ===== C’est un outil en ligne de commande qui possède un fichier de configuration en JSON. Selon la configuration, une fois lancé il fonctionne de manière perpétuelle en interrogeant toutes les X minutes. Si on veut que cela fonctionne automatiquement, il faut le déclarer en service sous Linux ou dans une tache planifiée au démarrage de la machine sous Windows. Les commandes sont les suivantes : - `-a` : ajout d’une boite à lettre à tester - `-l` : liste les boites configurées - `-d` : suppression d’une boite configurée - `-u` : permet de lancer une exécution unique même si la config indique un mode perpétuel. Configuration ----------------- Le fichier JSON est crée automatiquement lors de la première utilisation. - `AskMin` : interrogation toutes les X minutes. Par défaut `=0=Interrogation unique` - `CSVName` : le nom du fichier de sortie. Par défaut` ="MailServerMonitor.csv"`. Pour chaque boite : - `eMail` : l’e-mail à tester en envoi/réception - `TimeOutMs` : Time out in millisecondes, par défaut `=30000` - `ServerName` : le nom du serveur ou son IP - `Login` : nom d’utilisateur pour l’authentification - `EncryptedPassword` : utiliser la commande `-a` pour le créer - `ImapPort` : le port IMAP, par défaut `=993` - `ImapSSL` : pour utiliser SSL/TLS, par défaut `=true` - `SmtpPort` : le port SMTP, par défaut `=465` - `SmtpSSL` : pour utiliser SSL/TLS, par défaut` =true` Exploitation ------------ L’historique contient une ligne par test pour chaque serveur configuré. Le fichier dont le nom est paramétrable contient en entête les noms des colonnes. On y trouve : - le nom/ip du serveur `ServerName` - l'e-mail de la boite `eMail` - la date et heure de l’évènement `EventDateTime` - si l'envoi et la réception on abouti `SendRecieveOk` - si le serveur SMTP fonctionne `StmpConnected` - le temps de réponse du serveur SMTP `SmtpResponseTimeMs` - le message d’erreur associé au SMTP en cas d’erreur `SmtpError` - pareil pour l’IMAP `ImapConnected ImapResponseTimeMs ImapError` - le nombre de messages effacés lors de cette session `DeletedCount` MailServeMonitor ================ C’est son nom et il est OpenSource sur GitHub : [MailServerMonitor](https://github.com/GPh83/MailServerMonitor). C’est du .Net 6 donc utilisable sous Windows et Linux. Conclusion ========== Merci d’avoir lu jusqu’ici. Si ça peut vous servir le monde de l’Open Source et ma modeste contribution ne seront pas inutiles. Pour les commentaires, ci-après ou GitHub