MailLandDocs
Délivrabilité

Vue d'ensemble de la délivrabilité

Surveillez la réputation de l'expéditeur, les taux de livraison et l'état DNS de tous vos domaines

MailLand suit la réputation de votre expéditeur à travers un score composite, des tendances de livraison, des analyses par fournisseur et une surveillance de l'état DNS. Utilisez l'API de délivrabilité pour afficher ces métriques dans vos propres tableaux de bord ou pour déclencher des alertes lorsque la réputation diminue.

Score de l'expéditeur

Obtenez un score de réputation de 0 à 100, décomposé en quatre composantes pondérées :

GET https://api.mail.land/v1/deliverability/score

Authentifiez-vous avec Authorization: Bearer <token> ou X-API-Key: <api key>.

Get sender score
curl https://api.mail.land/v1/deliverability/score \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Sender score response
{
  "totalScore": 87,
  "label": "Good",
  "hasSufficientData": true,
  "totalSentLast30Days": 142500,
  "dnsScore": {
    "name": "DNS Authentication",
    "score": 25,
    "maxScore": 25,
    "detail": "2/2 domains fully authenticated"
  },
  "bounceScore": {
    "name": "Bounce Rate",
    "score": 20,
    "maxScore": 25,
    "detail": "Bounce rate: 1.80%"
  },
  "complaintScore": {
    "name": "Complaint Rate",
    "score": 25,
    "maxScore": 25,
    "detail": "Complaint rate: 0.020%"
  },
  "engagementScore": {
    "name": "Engagement",
    "score": 25,
    "maxScore": 25,
    "detail": "Open rate: 32.0%"
  },
  "calculatedAt": "2026-02-17T12:00:00Z"
}

Chaque composante contribue jusqu'à 25 points. En dessous de 100 envois sur les 30 derniers jours, hasSufficientData est false. totalScore est tout de même calculé, mais n'est pas significatif à ce volume : sans aucun envoi, les composantes de taux de rebond et de plaintes obtiennent chacune la note maximale (25), si bien qu'un compte tout neuf peut afficher jusqu'à 75 points avant même d'avoir envoyé quoi que ce soit.

Historique du score

Suivez l'évolution de votre score dans le temps :

GET https://api.mail.land/v1/deliverability/score/history?days=30
Get score history
curl "https://api.mail.land/v1/deliverability/score/history?days=30" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
ParamètreTypeDéfautDescription
daysint30Fenêtre d'historique (7–90)
Score history response
[
  {
    "date": "2026-02-17",
    "totalScore": 87,
    "label": "Good",
    "dnsScore": 25,
    "bounceScore": 22,
    "complaintScore": 25,
    "engagementScore": 15,
    "bounceRate": 0.8,
    "complaintRate": 0.02,
    "openRate": 32.0,
    "deliveryRate": 98.5,
    "totalSent": 4750,
    "hasSufficientData": true
  }
]

Statistiques générales de délivrabilité

Obtenez des métriques de livraison agrégées pour une période donnée :

GET https://api.mail.land/v1/deliverability/overview?days=30
Get deliverability overview
curl "https://api.mail.land/v1/deliverability/overview?days=30" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
ParamètreTypeDéfautDescription
daysint30Fenêtre de période (normalisée à 7, 30 ou 90)
Overview response
{
  "totalSent": 142500,
  "totalDelivered": 140325,
  "totalBounced": 1125,
  "totalComplained": 28,
  "totalOpened": 44878,
  "totalClicked": 5843,
  "totalUnsubscribed": 312,
  "deliveryRate": 98.47,
  "bounceRate": 0.79,
  "complaintRate": 0.02,
  "openRate": 31.49,
  "clickRate": 4.1,
  "unsubscribeRate": 0.22
}

Tendances quotidiennes

Obtenez des métriques de livraison par jour pour visualiser les tendances :

GET https://api.mail.land/v1/deliverability/trends?days=30
Get daily trends
curl "https://api.mail.land/v1/deliverability/trends?days=30" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Trends response (abbreviated)
[
  {
    "date": "2026-02-17T00:00:00Z",
    "sent": 4750,
    "delivered": 4680,
    "bounced": 38,
    "complained": 1,
    "opened": 1498,
    "deliveryRate": 98.53,
    "bounceRate": 0.8,
    "complaintRate": 0.02,
    "openRate": 31.53
  }
]

Répartition par fournisseur

Consultez les métriques de délivrabilité regroupées par fournisseur de messagerie du destinataire (Gmail, Yahoo, Outlook, etc.) :

GET https://api.mail.land/v1/deliverability/providers?days=30&limit=10
Get provider breakdown
curl "https://api.mail.land/v1/deliverability/providers?days=30&limit=10" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
ParamètreTypeDéfautDescription
daysint30Fenêtre de période (normalisée à 7, 30 ou 90)
limitint10Nombre maximum de fournisseurs à retourner (1–50)
Provider breakdown response
[
  {
    "domain": "gmail.com",
    "sent": 58200,
    "delivered": 57800,
    "bounced": 210,
    "opened": 19500,
    "clicked": 2540,
    "complained": 8,
    "deliveryRate": 99.31,
    "openRate": 33.51,
    "bounceRate": 0.36
  },
  {
    "domain": "outlook.com",
    "sent": 31400,
    "delivered": 30800,
    "bounced": 350,
    "opened": 8650,
    "clicked": 1120,
    "complained": 12,
    "deliveryRate": 98.09,
    "openRate": 27.55,
    "bounceRate": 1.11
  }
]

Répartition des rebonds

Consultez les rebonds classés par type et par motif :

GET https://api.mail.land/v1/deliverability/bounce-breakdown?days=30
Get bounce breakdown
curl "https://api.mail.land/v1/deliverability/bounce-breakdown?days=30" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Bounce breakdown response
{
  "hardBounces": 450,
  "softBounces": 625,
  "blockedBounces": 40,
  "unknownBounces": 10,
  "totalBounces": 1125,
  "topReasons": [
    { "reason": "InvalidRecipient", "count": 380 },
    { "reason": "QuotaIssues", "count": 290 },
    { "reason": "SpamBlock", "count": 40 },
    { "reason": "BadDomain", "count": 70 },
    { "reason": "PolicyRelated", "count": 95 },
    { "reason": "TransientFailure", "count": 55 }
  ]
}

topReasons utilise les noms de classification propres au MTA (voir Rebonds pour le vocabulaire complet), et non les catégories snake_case dérivées de mots-clés utilisées par les points de terminaison de rebond transactionnels.

Consultez Rebonds pour les détails complets des catégories de rebonds et le comportement de traitement.

État DNS

Vérifiez l'état de l'authentification DNS sur tous vos domaines :

GET https://api.mail.land/v1/deliverability/dns-status
Get DNS status
curl https://api.mail.land/v1/deliverability/dns-status \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
DNS status response
[
  {
    "domainId": "k3v9x2m8q1w7z4",
    "domainName": "yourdomain.com",
    "spfStatus": "Valid",
    "dkimStatus": "Valid",
    "dmarcStatus": "Valid",
    "lastCheckedAt": "2026-02-17T10:00:00Z",
    "isFullyAuthenticated": true
  },
  {
    "domainId": "n7p2q9x4m8w1z3",
    "domainName": "notifications.yourdomain.com",
    "spfStatus": "Valid",
    "dkimStatus": "Valid",
    "dmarcStatus": "Invalid",
    "lastCheckedAt": "2026-02-17T10:00:00Z",
    "isFullyAuthenticated": false
  }
]

Un domaine est isFullyAuthenticated uniquement lorsque SPF, DKIM et DMARC sont tous Valid.

StatutDescription
PendingEnregistrement pas encore vérifié
ValidEnregistrement correctement configuré
InvalidEnregistrement manquant ou mal configuré

Recommandations

Obtenez des recommandations concrètes pour améliorer la réputation de votre expéditeur :

GET https://api.mail.land/v1/deliverability/recommendations
Get recommendations
curl https://api.mail.land/v1/deliverability/recommendations \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIs..."
Recommendations response
[
  {
    "id": "dns_dmarc_missing_notifications.yourdomain.com",
    "category": "dns",
    "severity": "critical",
    "titleKey": "deliverability.recommendations.dns.dmarcMissing.title",
    "descriptionKey": "deliverability.recommendations.dns.dmarcMissing.description",
    "actionUrl": "/domains",
    "impact": 8,
    "parameters": {
      "domain": "notifications.yourdomain.com"
    }
  },
  {
    "id": "bounce_high",
    "category": "bounce",
    "severity": "warning",
    "titleKey": "deliverability.recommendations.bounce.high.title",
    "descriptionKey": "deliverability.recommendations.bounce.high.description",
    "actionUrl": "/deliverability",
    "impact": 15
  }
]
ChampTypeDescription
idstringIdentifiant de la recommandation. Ce n'est pas une énumération stable : les identifiants DNS incluent le nom de domaine (par exemple dns_dmarc_missing_{domain}), donc le même problème sur deux domaines produit deux identifiants différents.
categorystringdns, bounce, complaint, engagement, warmup ou volume
severitystringcritical, warning ou info
impactintAmélioration potentielle du score (0–100) si résolu
actionUrlstringRoute front-end pour traiter le problème : l'une de /domains, /deliverability, /suppression-lists, /analytics ou /dashboard
parametersobjectValeurs pour l'interpolation i18n. Présent uniquement pour les recommandations DNS ({"domain": "..."}) ; les recommandations de rebond, de plaintes, d'engagement, de préchauffage et de volume n'ont pas de parameters.

Au maximum 10 recommandations sont renvoyées, triées par sévérité (critique en premier) puis par impact décroissant.

Mise en cache

Tous les points de terminaison de délivrabilité sont mis en cache côté serveur pour réduire la charge des requêtes sur ClickHouse :

Point de terminaisonTTL du cache
/score15 minutes
/overview5 minutes
/trends3 minutes
/providers5 minutes
/bounce-breakdown5 minutes
/score/historyNon mis en cache
/dns-statusNon mis en cache (temps réel)
/recommendations10 minutes

Le paramètre days est normalisé à 7, 30 ou 90 : les valeurs ≤ 7 sont arrondies à 7, celles de 8 à 30 sont arrondies à 30, et toute valeur supérieure à 30 est arrondie à 90. Une valeur comme 14 est arrondie à 30, pas à 7.

Étapes suivantes

Sur cette page