Outil gratuit

Vérifier SPF, DKIM et DMARC

vos e-mails arrivent-ils à destination ?

Saisissez votre nom de domaine : le test lit sa configuration e-mail publique et vous dit, en français, ce qui manque et comment le corriger. Aucun e-mail envoyé, rien d’enregistré.

Vérifiez simplement la configuration email de votre domaine : MX, SPF, DKIM, DMARC, Reverse DNS, MTA-STS et TLS-RPT.

À quoi sert ce test ?

Lorsque vous envoyez un email, plusieurs réglages DNS contribuent à authentifier les messages envoyés au nom de votre domaine.

Ce test lit uniquement les informations DNS publiques de votre domaine. Il n'envoie aucun email.

Si vous connaissez le sélecteur DKIM utilisé par votre messagerie, indiquez-le ici.
'); frameDoc.write(clone.innerHTML); frameDoc.write(''); frameDoc.close(); setTimeout(function () { try { frame.contentWindow.focus(); frame.contentWindow.print(); } catch (err) { window.print(); } setTimeout(function () { if (frame && frame.parentNode) { frame.parentNode.removeChild(frame); } }, 3000); }, 400); }; function escapeHtml(value) { return String(value ?? '') .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function statusIcon(status) { if (status === 'ok') { return '✓'; } if (status === 'warning') { return '!'; } if (status === 'info') { return 'ℹ'; } return '×'; } function statusLabel(status) { if (status === 'ok') { return 'OK'; } if (status === 'warning') { return 'À surveiller'; } if (status === 'info') { return 'Optionnel'; } return 'Erreur'; } function explanation(key) { const data = { mx: { importance: 'Indispensable', title: 'À quoi servent les MX ?', text: 'C’est l’adresse officielle de votre boîte aux lettres sur Internet. Les enregistrements MX indiquent aux autres serveurs où remettre les emails qui vous sont envoyés.', why: 'Sans MX, vous ne pouvez recevoir aucun email. Et si le nom du serveur MX ne correspond pas à son adresse IP (Reverse DNS / PTR), certains services comme Gmail ou Yahoo peuvent refuser de vous faire confiance.' }, spf: { importance: 'Indispensable', title: 'À quoi sert le SPF ?', text: 'C’est la liste officielle des facteurs autorisés à distribuer des courriers pour votre domaine (par exemple : votre messagerie Google, Microsoft 365, ou votre serveur web).', why: 'Si un pirate tente d’envoyer des emails en usurpant votre nom, les serveurs destinataires vérifient votre SPF. S’il n’est pas dans la liste, le faux message est rejeté ou envoyé en spam. Attention : la norme limite le SPF à 10 recherches DNS maximum.' }, dkim: { importance: 'Indispensable', title: 'À quoi sert DKIM ?', text: 'C’est comme un cachet de cire ou une signature manuscrite infalsifiable apposée sur chaque email que vous envoyez. Elle prouve que le message vient bien de vous et n’a pas été modifié en cours de route.', why: 'Les grands services de messagerie (Google, Yahoo, Outlook) exigent désormais une signature DKIM pour accepter vos emails directement dans la boîte de réception principale.' }, dmarc: { importance: 'Indispensable', title: 'À quoi sert DMARC ?', text: 'C’est le chef d’orchestre de votre sécurité email. Il indique aux boîtes de réception la conduite à tenir si un email prétendant venir de vous échoue aux contrôles SPF et DKIM : le surveiller (p=none), l’isoler en spam (p=quarantine), ou le bloquer totalement (p=reject).', why: 'C’est la seule protection qui bloque net les escrocs voulant utiliser votre nom de domaine pour arnaquer vos clients ou vos proches.' }, bimi: { importance: 'Optionnel / Marque', title: 'À quoi sert BIMI ?', text: 'BIMI permet d’afficher le logo officiel et vérifié de votre entreprise directement à côté de vos emails dans la boîte de réception de vos destinataires (Gmail, Apple Mail, Yahoo).', why: 'Cela améliore considérablement le taux d’ouverture de vos messages, rassure vos destinataires contre les faux courriers et renforce la visibilité de votre marque. Pour être actif, BIMI exige impérativement que votre politique DMARC soit en quarantaine (à 100%) ou en rejet.' }, rbl: { importance: 'Complémentaire', title: 'À quoi servent les Listes Noires (RBL) ?', text: 'Ce test consulte quelques listes RBL pour les adresses IPv4 associées aux serveurs MX de votre domaine. Il porte donc sur des IP de réception, pas sur les IP d’envoi utilisées pour vos messages.', why: 'Le résultat renseigne uniquement sur les IP MX testées. Il ne permet pas de connaître la réputation des IP d’envoi ni de prédire le classement de vos messages.' }, dnssec: { importance: 'Sécurité DNS', title: 'À quoi sert DNSSEC ?', text: 'DNSSEC ajoute une signature cryptographique infalsifiable à l’annuaire DNS de votre domaine.', why: 'Il empêche les cyberattaquants de détourner secrètement l’aiguillage de vos emails ou de falsifier vos règles de sécurité SPF et DMARC par empoisonnement de cache DNS.' }, dane: { importance: 'Optionnel / Avancé', title: 'À quoi sert DANE / TLSA ?', text: 'DANE lie directement le certificat de chiffrement TLS de vos serveurs de messagerie à vos enregistrements DNS officiels.', why: 'C’est une alternative et un complément de haute sécurité à MTA-STS qui empêche tout piratage ou interception de vos échanges d’emails sécurisés.' }, mtasts: { importance: 'Optionnel / Avancé', title: 'À quoi sert MTA-STS ?', text: 'C’est un cadenas blindé qui force le chiffrement sécurisé (TLS) entre les serveurs de messagerie pour empêcher toute interception d’emails sur le réseau.', why: 'C’est une protection très poussée utilisée par les grandes banques et institutions. Elle n’est PAS obligatoire pour le fonctionnement normal de vos emails et nécessite un serveur web dédié avec certificat SSL.' }, tlsrpt: { importance: 'Optionnel / Avancé', title: 'À quoi sert TLS-RPT ?', text: 'C’est un carnet de bord automatisé qui vous prévient par email si un serveur distant a rencontré des difficultés de chiffrement lors d’un échange d’emails avec votre domaine.', why: 'Tout comme MTA-STS, c’est un outil facultatif de surveillance réservé aux administrateurs de très gros réseaux pour détecter des pannes techniques de chiffrement.' } }; return data[key] || { importance: 'Contrôle DNS', title: 'À quoi sert ce contrôle ?', text: 'Ce contrôle analyse une partie de la configuration DNS de votre domaine.', why: 'Une configuration correcte contribue au bon fonctionnement et à la fiabilité de votre messagerie.' }; } function resultMeaning(key, status) { const meanings = { mx: { ok: 'Vos serveurs de réception et leur adresse inverse (Reverse DNS) sont bien configurés. Votre messagerie est prête à recevoir les courriers.', warning: 'Les serveurs de réception existent, mais un problème a été détecté sur leur adresse inverse (Reverse DNS / PTR), ce qui peut impacter la réputation de votre domaine.', error: 'Aucun serveur MX n’a été trouvé, ou un conflit d’enregistrement CNAME sur la racine a été détecté.' }, spf: { ok: 'Votre enregistrement SPF est unique, bien configuré et respecte la limite de requêtes DNS.', warning: 'Votre SPF existe, mais certains éléments méritent une attention (par exemple : limite des 10 recherches DNS qui approche, mécanisme déconseillé, ou politique neutre).', error: 'Le SPF est absent, en doublon ou mal configuré (par exemple avec +all qui autorise tout le monde à envoyer pour vous).' }, dkim: { ok: 'Une ou plusieurs clés DKIM valides ont été trouvées pour signer vos messages.', warning: 'Aucun sélecteur DKIM courant n’a été détecté automatiquement. Si votre messagerie utilise un sélecteur sur mesure, saisissez-le dans le champ ci-dessus pour tester votre clé.', error: 'Le sélecteur DKIM demandé n’a pas permis de trouver une clé publique valide.' }, dmarc: { ok: 'Un enregistrement DMARC protecteur est actif sur votre domaine.', warning: 'DMARC est présent mais est en mode surveillance (p=none) ou ne transmet pas de rapports (rua=). Vos emails ne sont pas encore bloqués en cas d’usurpation.', error: 'Aucun enregistrement DMARC n’est configuré. Votre domaine n’a aucune consigne de protection contre l’usurpation.' }, bimi: { ok: 'Votre enregistrement BIMI est configuré et valide, et votre politique DMARC respecte les critères requis pour afficher votre logo.', warning: 'Un enregistrement BIMI est publié mais nécessite des ajustements (par exemple : politique DMARC trop souple, format du logo, ou absence de certificat VMC).', info: 'BIMI n’est pas configuré. C’est une option facultative réservée aux entreprises souhaitant afficher leur logo officiel dans les messageries.', error: 'L’enregistrement BIMI comporte une erreur de syntaxe.' }, rbl: { ok: 'Aucune des adresses IPv4 MX testées ne figure sur les listes RBL consultées. Cela ne renseigne pas sur les IP d’envoi.', warning: 'Une ou plusieurs adresses IPv4 associées aux MX figurent sur une liste RBL. Le résultat concerne ces IP de réception uniquement.', error: 'Une ou plusieurs adresses IPv4 MX testées sont répertoriées sur une liste RBL. Ce contrôle ne permet pas de conclure sur les IP d’envoi réellement utilisées.', info: 'Aucune adresse IPv4 associée aux MX n’a pu être testée sur les listes RBL.' }, dnssec: { ok: 'DNSSEC est actif : votre zone DNS est signée et protégée cryptographiquement contre les attaques d’usurpation et d’empoisonnement DNS.', info: 'DNSSEC n’est pas activé. Ce n’est pas bloquant pour vos envois d’emails, mais son activation chez votre Registrar renforce la sécurité de votre domaine.' }, dane: { ok: 'DANE / TLSA est configuré : vos certificats de messagerie sont authentifiés directement par le DNS pour un chiffrement garanti.', info: 'DANE / TLSA n’est pas configuré. Il s’agit d’une sécurité avancée facultative utilisée par les institutions et infrastructures sensibles.' }, mtasts: { ok: 'MTA-STS est actif et valide : vos connexions email sont protégées par un chiffrement strict forcé.', warning: 'MTA-STS n’est pas configuré. C’est tout à fait normal pour l’immense majorité des sites : ce n’est pas une panne et vos emails fonctionnent parfaitement sans lui.', error: 'La politique MTA-STS existe mais comporte des erreurs techniques dans sa déclaration HTTPS.' }, tlsrpt: { ok: 'TLS-RPT est configuré et prêt à recevoir les rapports de chiffrement.', warning: 'TLS-RPT n’est pas configuré. C’est une option facultative qui n’a aucun impact négatif sur vos envois d’emails du quotidien.', error: 'La configuration TLS-RPT comporte une erreur.' } }; return meanings[key] && meanings[key][status] ? meanings[key][status] : 'Le test a terminé son analyse de cet élément.'; } function recommendation(key, status) { if (status === 'ok' || status === 'info') { return { show: false, text: '' }; } const recommendations = { mx: 'Vérifiez dans la zone DNS de votre domaine que les serveurs MX correspondent bien au service de messagerie que vous utilisez, et assurez-vous qu’aucun CNAME n’est configuré sur la racine (@).', spf: 'Vérifiez la liste des services autorisés à envoyer vos emails et assurez-vous qu’un seul enregistrement SPF est publié.', dkim: 'Si votre messagerie utilise DKIM, récupérez le sélecteur dans la console d’administration de votre messagerie (Google, Microsoft 365, etc.) puis relancez le test avec ce sélecteur.', dmarc: 'Publiez un enregistrement DMARC pour surveiller puis bloquer les faux emails envoyés avec votre nom de domaine.', bimi: 'Si vous souhaitez afficher votre logo dans Gmail et Yahoo, publiez un enregistrement default._bimi avec votre logo au format SVG Tiny P.S. et assurez-vous que DMARC est au minimum en p=quarantine (pct=100) ou p=reject.', rbl: 'Vérifiez auprès du fournisseur du serveur MX concerné si l’inscription de cette IP de réception nécessite une action. Ce résultat ne teste pas la réputation des IP d’envoi.', dnssec: 'Activez DNSSEC depuis l’espace client de votre bureau d’enregistrement de domaine (Registrar) pour sécuriser l’authenticité de votre zone DNS.', dane: 'Aucune action requise. DANE est une sécurité facultative requérant DNSSEC et la publication d’enregistrements TLSA.', mtasts: 'Aucune action requise. MTA-STS est une sécurité complémentaire réservée aux structures ayant des besoins de très haute sécurité (nécessite d’héberger un sous-domaine https://mta-sts avec un certificat SSL valide).', tlsrpt: 'Aucune action requise. Si vous n’avez pas d’équipe dédiée pour analyser quotidiennement des rapports techniques de chiffrement, vous pouvez ignorer cet élément.' }; return { show: true, text: recommendations[key] || 'Vérifiez la configuration DNS correspondante.' }; } function renderCard(key, result) { const info = explanation(key); const meaning = resultMeaning( key, result.status ); const advice = recommendation( key, result.status ); let html = ''; html += '
'; html += '
'; html += '' + statusIcon(result.status) + ''; html += '' + escapeHtml(result.title) + (info.importance ? ' (' + escapeHtml(info.importance) + ')' : '') + ''; html += '' + escapeHtml(statusLabel(result.status)) + ''; html += '
'; html += '
'; /* * Explication débutant */ html += '
'; html += '' + escapeHtml(info.title) + ''; html += '
' + escapeHtml(info.text) + '
'; html += '
'; /* * Pourquoi */ html += '
' + 'Pourquoi est-ce important ?
' + escapeHtml(info.why) + '
'; /* * Interprétation du résultat */ html += '
' + 'Que signifie votre résultat ?
' + escapeHtml(meaning) + '
'; /* * Recommandation */ if (advice.show) { html += '
' + 'Que faire ?
' + escapeHtml(advice.text) + '
'; } /* * Enregistrement DNS */ if (result.record) { html += '
' + '
' + 'Enregistrement DNS détecté' + '
' + '' + '
'; html += '
' + escapeHtml(result.record) + '
'; } if (result.suggested_dns) { html += '
' + '
⚡ Enregistrement recommandé à publier
' + '' + '
'; html += '
' + '' + escapeHtml(result.suggested_dns.type) + ' ' + 'Hôte : ' + escapeHtml(result.suggested_dns.name) + '' + '
'; html += '
' + escapeHtml(result.suggested_dns.value) + '
'; if (result.suggested_dns.note) { html += '
💡 ' + escapeHtml(result.suggested_dns.note) + '
'; } } /* * Détails techniques */ html += '
'; html += 'Afficher les détails techniques'; /* * MX */ if ( key === 'mx' && result.details && result.details.servers ) { if (result.details.provider) { html += '
' + '📬 Messagerie détectée : ' + escapeHtml(result.details.provider.name) + '
'; } html += ''; html += '' + '' + '' + '' + ''; result.details.servers.forEach( function (server) { let reverse = ''; if (server.addresses) { server.addresses.forEach( function (address) { let fcrdnsBadge = ''; if (address.has_ptr && address.fcrdns !== undefined) { fcrdnsBadge = address.fcrdns ? ' ✓ FCrDNS' : ' ! FCrDNS non confirmé'; } reverse += '
' + escapeHtml(address.ip) + ' → ' + ( address.ptr ? escapeHtml(address.ptr) + fcrdnsBadge : 'PTR absent' ) + '
'; } ); } html += '' + '' + '' + '' + ''; } ); html += '
PrioritéServeurReverse DNS
' + escapeHtml( server.priority ) + '' + escapeHtml( server.host ) + '' + reverse + '
'; } /* * SPF */ if ( key === 'spf' && result.details ) { html += ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '
Recherches DNS estimées' + escapeHtml( result.details.lookups ) + ' / ' + escapeHtml( result.details.limit ) + '
Directive finale' + escapeHtml( result.details.all || 'non définie' ) + '
'; if ( result.details.mechanisms ) { html += '
' + 'Voir les mécanismes SPF' + '
    '; result.details.mechanisms.forEach( function (item) { html += '
  • ' + escapeHtml( item.qualifier + item.name + ( item.value ? ':' + item.value : '' ) ) + (item.lookups ? ' (+1 DNS)' : '') + '
  • '; } ); html += '
'; } if ( result.details.includes_tree && result.details.includes_tree.length > 0 ) { html += '
' + 'Voir l’arborescence des inclusions (includes)' + '
    '; result.details.includes_tree.forEach( function (inc) { html += '
  • ' + escapeHtml(inc.parent) + ' → include:' + escapeHtml(inc.include) + ' (' + escapeHtml(inc.status) + ')
  • '; } ); html += '
'; } } /* * DKIM */ if ( key === 'dkim' && result.details ) { if ( result.details.selectors ) { html += ''; html += '' + '' + '' + '' + '' + ''; result.details.selectors.forEach( function (item) { let bitsLabel = 'N/A'; if (item.key_bits) { bitsLabel = escapeHtml(item.key_bits) + ' bits'; if (item.key_bits === 1024) { bitsLabel += ' déprécié'; } } html += '' + '' + '' + '' + '' + ''; } ); html += '
SélecteurTypeTailleÉtat
' + escapeHtml( item.selector ) + '' + escapeHtml( item.tags && item.tags.k ? item.tags.k : 'rsa' ) + '' + bitsLabel + '' + '' + escapeHtml( statusLabel( item.status ) ) + '' + '
'; } if ( result.details.selector ) { html += '
' + 'Sélecteur testé : ' + escapeHtml( result.details.selector ) + (result.details.key_bits ? ' · Taille : ' + escapeHtml(result.details.key_bits) + ' bits' : '') + '
'; } } /* * DMARC */ if ( key === 'dmarc' && result.details && result.details.tags ) { const tags = result.details.tags; html += ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '' + '' + '' + ''; html += '
Politique' + escapeHtml( tags.p || 'non définie' ) + '
Politique sous-domaines' + escapeHtml( tags.sp || 'hérite de p' ) + '
Pourcentage' + escapeHtml( tags.pct || '100' ) + ' %
Alignement DKIM' + escapeHtml( tags.adkim || 'r' ) + '
Alignement SPF' + escapeHtml( tags.aspf || 'r' ) + '
Rapports agrégés' + escapeHtml( tags.rua || 'non configuré' ) + '
'; if (result.details.inherited) { html += '
' + 'ℹ️ Cet enregistrement DMARC est hérité depuis le domaine parent ' + escapeHtml(result.details.host) + '.' + '
'; } if (result.details.external_reports && result.details.external_reports.length > 0) { html += '
' + '
Autorisation des rapports externes (RFC 7489) :
' + '
    '; result.details.external_reports.forEach(function (ext) { html += '
  • Domaine @' + escapeHtml(ext.destination_domain) + ' : ' + (ext.is_authorized ? '✓ Autorisé' : '! Non autorisé (hôte ' + escapeHtml(ext.verify_host) + ' manquant)') + '
  • '; }); html += '
'; } } /* * BIMI */ if ( key === 'bimi' && result.details ) { if (result.details.configured && result.details.logo_url) { html += '
' + 'Logo BIMI' + '
' + '
Logo de marque détecté : Voir le fichier SVG
' + (result.details.cert_url ? '
Certificat VMC : ' + escapeHtml(result.details.cert_url) + '
' : '
Aucun certificat VMC associé (nécessaire pour un affichage garanti sur Gmail/Yahoo)
') + '
Compatibilité DMARC : ' + (result.details.dmarc_compatible ? '✓ Compatible (DMARC strict)' : '! Incompatible (DMARC doit être en p=quarantine ou p=reject)') + '
' + '
' + '
'; } } /* * MTA-STS */ if ( key === 'mtasts' && result.details ) { if (result.details.url) { html += '

' + 'URL de la politique :
' + escapeHtml( result.details.url ) + '

'; } if ( result.details.mode ) { html += '' + '' + '' + '' + '' + '' + '' + '' + '' + '
Mode' + escapeHtml( result.details.mode ) + '
Durée max_age' + escapeHtml( result.details.max_age ) + '
'; } if ( result.details.policy ) { html += '
' + 'Contenu de la politique' + '
' + '
' + escapeHtml( result.details.policy ) + '
'; } } /* * TLS-RPT */ if ( key === 'tlsrpt' && result.details && result.details.tags ) { html += ''; Object.keys( result.details.tags ).forEach( function (tag) { html += '' + '' + '' + ''; } ); html += '
' + escapeHtml(tag) + '' + escapeHtml( result.details.tags[tag] ) + '
'; } /* * Listes Noires (RBL) */ if ( key === 'rbl' && result.details && result.details.checks ) { html += '' + '' + '' + '' + '' + ''; result.details.checks.forEach(function (c) { html += '' + '' + '' + '' + ''; }); html += '
Adresse IPListe NoireStatut
' + escapeHtml(c.ip) + '' + escapeHtml(c.rbl) + '' + (c.is_listed ? '❌ Listé (' + escapeHtml(c.return_ip) + ')' : '✓ Propre') + '
'; } /* * DNSSEC */ if ( key === 'dnssec' && result.details ) { html += '

' + 'Signature cryptographique DNSSEC : ' + (result.details.enabled ? '✓ Activé' : 'ℹ Non activé') + '

'; if (result.details.ds_records && result.details.ds_records.length > 0) { html += '
Enregistrement(s) DS (Delegation Signer) :
'; result.details.ds_records.forEach(function (ds) { html += '
' + escapeHtml(ds) + '
'; }); } } /* * DANE / TLSA */ if ( key === 'dane' && result.details ) { html += '

' + 'Authentification DANE / TLSA : ' + (result.details.enabled ? '✓ Configuré' : 'ℹ Non configuré') + '

'; if (result.details.records && result.details.records.length > 0) { html += '' + ''; result.details.records.forEach(function (rec) { html += '' + '' + '' + ''; }); html += '
Serveur MXEnregistrement TLSA
' + escapeHtml(rec.host) + '' + escapeHtml(rec.record) + '
'; } } /* * Erreurs détectées */ if ( result.details && result.details.errors && result.details.errors.length ) { html += '
' + 'Problèmes détectés :' + '
    '; result.details.errors.forEach( function (item) { html += '
  • ' + escapeHtml(item) + '
  • '; } ); html += '
'; } /* * Avertissements */ if ( result.details && result.details.warnings && result.details.warnings.length ) { html += '
' + 'Points à surveiller :' + '
    '; result.details.warnings.forEach( function (item) { html += '
  • ' + escapeHtml(item) + '
  • '; } ); html += '
'; } html += '
'; html += '
'; html += '
'; return html; } form.addEventListener( 'submit', async function (event) { event.preventDefault(); errorBox.style.display = 'none'; resultsBox.style.display = 'none'; glossary.style.display = 'none'; loading.style.display = 'block'; submit.disabled = true; const data = new FormData(); data.append( 'domain', domainInput.value.trim() ); data.append( 'selector', selectorInput.value.trim() ); try { const response = await fetch( ENDPOINT, { method: 'POST', body: data, credentials: 'same-origin' } ); const result = await response.json(); if ( !response.ok || !result.success ) { throw new Error( result.error || 'Une erreur est survenue.' ); } let html = ''; const summaryClass = 'dmc-summary-' + result.status; /* * En-tête d'impression PDF */ const printDate = new Date().toLocaleDateString('fr-FR', { day: 'numeric', month: 'long', year: 'numeric' }); html += '
' + '
Audit de Sécurité E-mail & DNS
' + '
' + 'Domaine analysé : ' + escapeHtml(result.domain) + ' • Date : ' + escapeHtml(printDate) + ' • Rapport généré avec thierrylaval.dev' + '
'; /* * Résumé général */ html += '
'; html += '
'; if ( result.status === 'ok' ) { html += 'Configuration correctement détectée'; } else if ( result.status === 'warning' ) { html += 'Configuration en vérification'; } else { html += 'Des problèmes ont été détectés'; } html += '
'; html += '
' + 'Analyse du domaine :' + '
'; html += '
' + escapeHtml( result.domain ) + '
'; html += '
' + escapeHtml( result.summary.errors ) + ' erreur(s) · ' + escapeHtml( result.summary.warnings ) + ' avertissement(s)' + '
'; if (result.score !== undefined) { html += '
' + '
' + 'Score de configuration e-mail : ' + escapeHtml(result.score) + ' / 100' + '
' + '' + '
'; } /* * Explication globale */ html += '
'; if ( result.status === 'ok' ) { html += 'En résumé :
' + 'Les principaux enregistrements DNS liés à la messagerie ont été trouvés et ne présentent pas d’erreur détectée par ce test. Cela ne garantit toutefois pas à lui seul la délivrabilité de tous les emails.'; } else if ( result.status === 'warning' ) { html += 'En résumé :
' + 'La configuration contient des éléments fonctionnels mais certains points méritent une vérification. Ouvrez les résultats ci-dessous pour comprendre précisément lesquels.'; } else { html += 'En résumé :
' + 'Un ou plusieurs éléments importants de la configuration email présentent un problème. Les résultats ci-dessous expliquent ce qui a été détecté et indiquent les vérifications à effectuer.'; } html += '
'; html += '
'; /* * Suggestions globales d'enregistrements DNS */ if (result.suggested_dns && Object.keys(result.suggested_dns).length > 0) { html += '
' + '
⚡ Enregistrements DNS recommandés à publier / corriger
' + '

Copiez-collez ces enregistrements directement dans la zone DNS de votre hébergeur :

'; Object.keys(result.suggested_dns).forEach(function(k) { const sugg = result.suggested_dns[k]; html += '
' + '
' + '' + escapeHtml(sugg.type) + ' ' + 'Hôte : ' + escapeHtml(sugg.name) + ' ' + '(' + escapeHtml(sugg.category || k) + ')' + '
' + '
' + '' + escapeHtml(sugg.value) + '' + '' + '
'; if (sugg.note) { html += '
💡 ' + escapeHtml(sugg.note) + '
'; } html += '
'; }); html += '
'; } /* * Cartes */ html += '
'; Object.keys( result.results ).forEach( function (key) { html += renderCard( key, result.results[key] ); } ); html += '
'; resultsBox.innerHTML = html; resultsBox.style.display = 'block'; glossary.style.display = 'block'; resultsBox.scrollIntoView({ behavior: 'smooth', block: 'start' }); } catch (error) { errorBox.textContent = error.message || 'Impossible d’effectuer le test.'; errorBox.style.display = 'block'; } finally { loading.style.display = 'none'; submit.disabled = false; } } ); /* * Prise en compte automatique du paramètre d'URL (?domain=exemple.com) */ (function checkUrlParams() { try { const urlParams = new URLSearchParams(window.location.search); const autoDomain = urlParams.get('domain') || urlParams.get('d') || urlParams.get('domaine'); const autoSelector = urlParams.get('selector') || urlParams.get('s'); if (autoDomain && domainInput) { domainInput.value = autoDomain.trim(); if (autoSelector && selectorInput) { selectorInput.value = autoSelector.trim(); } setTimeout(function () { form.dispatchEvent(new Event('submit', { cancelable: true })); }, 300); } } catch (e) {} })(); })();
Demande de devis thierrylaval.dev

Besoin d’un expert

Vous souhaitez aller plus loin après ces vérifications ? Je peux analyser les résultats, identifier les problèmes de configuration e-mail et vous accompagner dans leur correction.
-

Lorem Ipsum

Lorem ipsum dolor sit amet, conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut...
-

Lorem Ipsum

Lorem ipsum dolor sit amet, conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut...
-

Lorem Ipsum

Lorem ipsum dolor sit amet, conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut...
-

Lorem Ipsum

Lorem ipsum dolor sit amet, conse ctetur adipisicing elit, sed do eiusmod tempor incididunt ut...