Check SMTP

Perstat vérifie le serveur SMTP dont dépendent vos réinitialisations de mot de passe et vos factures, depuis 6 régions au plus. Il lit la bannière, envoie EHLO et peut juger le certificat derrière STARTTLS, sans jamais envoyer de message.

Tous les types de checks smtp

La vue du monitor d’un check SMTP sur mail.datargo.com avec l’uptime, les temps de réponse par région, la bannière dans la ligne de détail et le panneau du certificat.
Sur cette page

Ce qu’il vérifie

Un monitor SMTP se connecte à l’hôte et au port depuis chacune de ses régions, lit la bannière du serveur et envoie EHLO datargo.monitor. Le check réussit quand la bannière commence par 220 et que la première ligne de la réponse EHLO commence par 250. Tout autre code, une connexion refusée ou un délai dépassé le fait échouer. Avec le sous-check de certificat activé, un check réussi se poursuit en TLS, via STARTTLS ou directement sur le port 465, et juge l’expiration, l’émetteur, le sujet et la confiance.

À utiliser quand

  • Un serveur mail doit accepter les connexions sur 25 ou 587 et répondre comme un serveur SMTP, pas seulement garder le port ouvert.
  • Le certificat derrière STARTTLS doit être surveillé. Le check de certificat TLS ne fait qu’un handshake direct, le certificat d’un port de soumission STARTTLS se vérifie donc ici.
  • Le mail sortant d’une application dépend d’un relais, et un relais qui cesse de répondre doit ouvrir un incident.

Le check ne se connecte à aucun compte, n’envoie aucun message et n’exécute ni MAIL FROM ni RCPT TO. Il ne dit donc rien de la remise. Pour SPF et DMARC du domaine, utilisez le check d’hygiène DNS. Utilisez le check IMAP pour un serveur de boîtes mail et son certificat, et le check TCP pour un port sans dialogue protocolaire.

Le formulaire de monitor avec le type SMTP : l’hôte mail.datargo.com, le champ du port et la sélection des familles IP. Le sous-check de certificat TLS affiche la fenêtre d’avertissement et les motifs d’émetteur et de sujet.
Le formulaire SMTP : hôte, port, le sous-check de certificat TLS et les familles IP. Interface réelle du produit, données d’exemple.

Configuration

Cible. Un nom d’hôte ou une adresse IP sans schéma, chemin ni espace (étiquettes de 63 caractères au plus, 253 au total), plus un port facultatif de 1 à 65535. Sans port, le moteur vérifie le port 25, même si le formulaire propose 587. Chaque adresse résolue est validée avant d’être contactée. Les adresses de boucle locale, privées, link-local et de métadonnées cloud sont refusées, le monitor ne peut donc pas atteindre un réseau interne.

ChampRequisValeurs et défautSignification
hostHôteouiNom d’hôte ou adresse IPLe serveur mail auquel la sonde se connecte, sans schéma ni chemin. Les littéraux IP sont acceptés.
portPortfacultatif1 à 65535, défaut 25 si omis. Le formulaire propose 587Le port SMTP. Pour le sous-check de certificat, 465 signifie un handshake TLS direct et tout autre port signifie STARTTLS.
interval_secondsIntervalle de checkfacultatifSecondes, défaut 300, maximum 24 h, minimum fixé par l’offreLa fréquence à laquelle chaque région exécute le check. Ce champ se règle à côté de config dans la requête de création, comme dans l’exemple ci-dessous. Une valeur sous le minimum de l’offre est relevée à ce minimum, pas rejetée.
regionsRégionsfacultatifSous-ensemble de na, eu, as, sa, af, oce. Omis : autant que l’offre en permet, dans cet ordreLes continents qui exécutent le check, réglés à côté de config comme interval_seconds. Une liste qui dépasse la limite de l’offre est rejetée avec 402, pas tronquée.
address_familiesFamilles IPfacultatifListe de ipv4, ipv6 ou des deux. Vide ou omis vaut ["ipv4"]Chaque adresse résolue est contactée séparément. Avec les deux familles, family_fail_severity (degraded par défaut, ou failed) décide de ce que signifie l’échec d’une seule famille.

Certificat TLS

Un check réussi peut se poursuivre en TLS et juger le certificat. Sur le port 465, il passe par un handshake direct, sur tout autre port par le dialogue STARTTLS (bannière, EHLO jusqu’à sa dernière ligne, STARTTLS, 220). Sans le sous-check, le monitor affiche quand même le certificat qu’il a vu, mais aucune politique ni fenêtre d’avertissement ne s’applique.

ChampRequisValeurs et défautSignification
tls_cert.enabledfacultatiftrue ou false, défaut falseActive le sous-check. Il est désactivé par défaut, et le formulaire porte l’interrupteur.
tls_cert.portfacultatifPort, défaut : le port du monitorLe port du handshake TLS.
tls_cert.warn_daysfacultatifJours, défaut 14Sous cette durée de vie restante, le check porte un avertissement, et propriétaires et administrateurs reçoivent chaque heure un e-mail et une notification dans l’app. L’état reste réussi, et un certificat expiré fait échouer le check.
tls_cert.issuer_regexfacultatifExpression régulièreL’émetteur doit correspondre, par exemple Let's Encrypt.
tls_cert.subject_regexfacultatifExpression régulièreLe common name du sujet doit correspondre.
tls_cert.allow_self_signedfacultatiffalse (défaut) ou trueSaute les contrôles de confiance, de nom d’hôte et de date dans le handshake. L’expiration et les assertions regex s’appliquent toujours, et le formulaire demande confirmation. Réservez-le aux relais internes dotés de leur propre CA.

Déroulement d’un check

  1. Chaque région dont l’intervalle est échu résout l’hôte par le résolveur du nœud.
  2. Chaque adresse résolue de la famille choisie est validée contre les plages bloquées, puis contactée séparément.
  3. Par adresse, la sonde lit la ligne de bannière, envoie EHLO datargo.monitor et lit la première ligne de la réponse. Tout le dialogue doit tenir dans la limite de 10 s.
  4. Une bannière commençant par 220 et une réponse EHLO commençant par 250 réussissent. Tout autre code, une erreur d’E/S ou un délai dépassé échoue.
  5. Seul un check réussi avec tls_cert.enabled exécute la politique de certificat, une fois par check. Elle passe par un handshake direct sur 465 et par le dialogue STARTTLS sur tout autre port.
  6. Chaque check lit, pour l’affichage, le certificat présenté par le serveur, avec ou sans sous-check. Cette lecture ne change jamais le verdict.
  7. Le résultat de la région part au plan de contrôle. La politique d’alerte décide quand des régions en échec ouvrent un incident, par défaut dès que 2 régions concordent sur 2 checks consécutifs.
La vue du monitor d’un check SMTP sur mail.datargo.com avec l’uptime, les temps de réponse par région, la bannière dans la ligne de détail et le panneau du certificat.
La vue du monitor avec l’uptime, le temps de réponse et le p95, ainsi que la ligne de bannière et le certificat présenté par le serveur. Interface réelle du produit, données d’exemple.

Ce que contient un résultat

Bannière
La ligne de détail porte la bannière envoyée par le serveur. En cas d’échec, elle porte SMTP error: ... avec la réponse du serveur, ou Timeout.
Temps de réponse
Temps entre la connexion et la réponse EHLO, par région et par adresse. Avec plusieurs adresses, c’est le minimum qui est rapporté.
Couche de cause
Indique si l’échec relevait du DNS de la cible (NXDOMAIN ou NODATA) ou de son application, une fois le nom résolu. Les autres causes sont signalées comme inconnues.
Certificat
Le certificat est lu via STARTTLS ou sur le port 465. Le résultat conserve son common name, ses noms alternatifs, son émetteur et ses dates de validité, et indique s’il est auto-signé et de confiance. Avec le sous-check activé, il porte l’avertissement dès que le certificat entre dans sa fenêtre d’avertissement.
Région, famille, adresse
Chaque résultat porte la région qui l’a mesuré, et un sous-résultat par famille IP et par adresse.

États et gravité

  • okLa bannière commence par 220 et la réponse EHLO par 250. Avec le sous-check activé, la politique de certificat tient aussi, et un certificat dans sa fenêtre d’avertissement conserve cet état.
  • dégradéUne famille IP échoue pendant que l’autre répond, ou certaines de plusieurs adresses résolues échouent, à la valeur par défaut de family_fail_severity.
  • en panneLa connexion est refusée, expire ou est bloquée, ou l’hôte ne se résout pas. Le check est aussi en panne quand la bannière ou la réponse EHLO porte un autre code. Il en va de même quand la politique de certificat échoue pour cause d’expiration ou de handshake rejeté, ou parce que l’émetteur ou le sujet ne correspond pas.
  • erreurLa configuration ne peut pas s’exécuter. Cet état compte comme une panne de gravité critique.

Confirmé par quorum : par défaut, 2 régions doivent signaler l’échec avant l’ouverture d’un incident. Par défaut, l’organisation exige 2 régions et 2 checks consécutifs. Un monitor peut porter sa propre règle avec un nombre ou un pourcentage, des checks consécutifs et une durée minimale.

Offres et limites

Intervalle minimal
300 s en Free, 60 s en Pulse, 30 s en Sentinel, 15 s en Command et 10 s en Enterprise. Le formulaire web propose 30 s, 1 min, 5 min, 15 min et 1 h. Les intervalles de 15 s et 10 s ne sont accessibles que par MCP.
Régions
2 sur 6 en Free, 3 sur 6 en Pulse et les 6 à partir de Sentinel.
Monitors
10 en Free, 50 en Pulse, 150 en Sentinel, 500 en Command et un quota sur mesure en Enterprise. Les onze types de sonde partagent ce quota. Les monitors heartbeat et agent puisent dans leurs propres quotas.

Comparer toutes les limites

Depuis le pipeline ou un agent

La même config fonctionne dans l’étape de déploiement, dans un client MCP comme Claude Code et dans le formulaire ci-dessus. create_monitor exige une clé API valable pour toute l’organisation. Si vous omettez regions, l’offre applique sa valeur par défaut.

{
  "name": "Mail relay",
  "type": "smtp",
  "interval_seconds": 60,
  "config": {
    "host": "mail.example.com",
    "port": 587,
    "tls_cert": { "enabled": true, "warn_days": 21 }
  }
}

Chaque interface, avec sa limite

Limites

  • Pas d’authentification, aucun message envoyé, ni MAIL FROM ni RCPT TO. Le check prouve que le serveur répond, pas qu’il remet le courrier.
  • La sonde de vivacité ne lit que la première ligne de la réponse EHLO. Les extensions annoncées par le serveur ne sont pas évaluées.
  • Un monitor créé sans port vérifie le port 25, pas 587.
  • SPF et DMARC du domaine ne sont pas lus ici. Le check d’hygiène DNS s’en charge.
  • Les cibles sur des adresses privées, de boucle locale, link-local et de métadonnées cloud sont refusées.
  • Toutes les régions ne sondent pas IPv6, sélectionner ipv6 restreint donc les régions utilisables. Le formulaire ne propose IPv6 que si l’hôte se résout en enregistrement AAAA ou est un littéral IPv6.

Tous les types de checks