← RFC Reference

RFC 8460 : Rapport TLS SMTP (TLSRPT)

Norme actuelle Signalement d'abus et commentaires Published March 2026
ELI5: Vous avez publié une politique [MTA-STS](mta-sts) disant « toujours utiliser TLS lors de l'envoi de courrier ». Mais comment savez-vous si les expéditeurs peuvent réellement se connecter de manière sécurisée ? TLSRPT est le mécanisme de rétroaction — les serveurs d'envoi collectent des données sur les succès et les échecs de TLS lors de la livraison à votre domaine, et vous envoient un rapport JSON quotidien pour que vous puissiez détecter les problèmes.

Pourquoi cela existe

Deux normes appliquent TLS pour les e-mails serveur à serveur : MTA-STS (RFC 8461) et DANE (RFC 7672). Les deux indiquent aux serveurs d'envoi « vous devez établir une connexion TLS valide avant de livrer du courrier à ce domaine ». Mais lorsque la négociation TLS échoue, le serveur d'envoi revient soit au texte clair (mauvais), soit refuse la livraison (courrier perdu). Dans les deux cas, le domaine destinataire n'a aucune idée qu'il y a un problème.

TLSRPT ferme cette lacune de visibilité. Les propriétaires de domaines publient un enregistrement DNS demandant des rapports TLS, et les MTA d'envoi regroupent leurs résultats de connexion TLS dans des rapports JSON quotidiens livrés par e-mail ou HTTPS.

Sans TLSRPT, vous pourriez déployer MTA-STS avec une erreur de certificat et ne pas réaliser qu'un pourcentage important du courrier entrant est rejeté ou livré de manière non sécurisée.

Comment ça marche

Étape 1 : Publier un enregistrement DNS TLSRPT

Ajoutez un enregistrement TXT à _smtp._tls.yourdomain.com spécifiant où les rapports doivent être envoyés :

; Envoyer des rapports TLS par e-mail _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com" ; Envoyer des rapports TLS via HTTPS POST _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=https://report.example.com/tlsrpt" ; Envoyer à plusieurs destinations _smtp._tls.example.com. IN TXT "v=TLSRPTv1; rua=mailto:tlsrpt@example.com,https://report.example.com/tlsrpt"

Étape 2 : Les serveurs d'envoi collectent les données

Lorsqu'un MTA d'envoi livre du courrier à votre domaine, il enregistre le résultat de la négociation TLS : session réussie avec certificat valide, échec de la négociation, incompatibilité de certificat, échec de la politique MTA-STS, échec de la validation DANE, etc.

Étape 3 : Livraison quotidienne des rapports

Une fois par jour, le MTA d'envoi regroupent ses résultats et envoie un rapport JSON. Lorsqu'il est livré par e-mail, il arrive en tant que message multipart/report avec report-type=tlsrpt :

Content-Type: multipart/report; report-type=tlsrpt;
    boundary="TLSRPT-001"

--TLSRPT-001
Content-Type: text/plain

SMTP TLS report for example.com
Report period: 2026-03-10T00:00:00Z to 2026-03-11T00:00:00Z

--TLSRPT-001
Content-Type: application/tlsrpt+json

{
  "organization-name": "Sender Corp",
  "date-range": {
    "start-datetime": "2026-03-10T00:00:00Z",
    "end-datetime": "2026-03-11T00:00:00Z"
  },
  "contact-info": "postmaster@sendercorp.com",
  "report-id": "2026-03-10-example.com",
  "policies": [{
    "policy": {
      "policy-type": "sts",
      "policy-string": ["version: STSv1", "mode: enforce",
        "mx: mail.example.com", "max_age: 604800"],
      "policy-domain": "example.com"
    },
    "summary": {
      "total-successful-session-count": 9450,
      "total-failure-session-count": 12
    },
    "failure-details": [{
      "result-type": "certificate-expired",
      "sending-mta-ip": "198.51.100.1",
      "receiving-mx-hostname": "mail.example.com",
      "failed-session-count": 12
    }]
  }]
}

--TLSRPT-001--

Détails techniques clés

Format de l'enregistrement DNS

Balise Requis Description
v Oui Version ; doit être TLSRPTv1
rua Oui URI(s) de rapport. mailto: pour la livraison par e-mail, https: pour HTTPS POST. Séparées par des virgules pour plusieurs destinations.

Types de résultats d'échec

result-type Signification
starttls-not-supported Le serveur récepteur n'a pas annoncé STARTTLS
certificate-host-mismatch Le nom d'hôte du certificat ne correspondait pas au nom d'hôte MX
certificate-expired Le certificat TLS du serveur a expiré
certificate-not-trusted Le certificat n'a pas été signé par une autorité de certification de confiance
validation-failure Échec général de la validation TLS
sts-policy-invalid La politique MTA-STS n'a pas pu être récupérée ou analysée
sts-webpki-invalid Le certificat du serveur hôte de la politique MTA-STS n'était pas valide
tlsa-invalid L'enregistrement TLSA DANE était malformé
dnssec-invalid La validation DNSSEC a échoué pour la recherche TLSA
dane-required DANE était obligatoire mais les enregistrements TLSA étaient absents

Types de politiques

policy-type Signification
sts Politique MTA-STS (RFC 8461)
tlsa Enregistrements TLSA DANE (RFC 7672)
no-policy-found Aucune politique MTA-STS ou DANE n'a été trouvée pour le domaine

Erreurs courantes

Impact sur la délivrabilité

Related RFCs