Aller au contenu principal

📱 BlocMail — Sécurité email


Mail Analyseur (/analyzer)

Saisie et analyse

Collez les en-têtes bruts d'un email pour obtenir une analyse complète en streaming temps réel (SSE, 8 étapes).

Comment obtenir les en-têtes de votre email :

ClientProcédure
GmailOuvrir l'email → ⋮ → "Afficher l'original" → Copier tout
OutlookOuvrir → Fichier → Propriétés → En-têtes Internet
Apple MailOuvrir → Présentation → Message → En-têtes longs
ThunderbirdOuvrir → Affichage → En-têtes → Tous

Les 8 étapes d'analyse (SSE)

ÉtapeProgressionInformations extraites
basic_parsing10%From, Subject, Date, Message-ID, Return-Path, IPs
ip_parsing20%IPv4 publiques filtrées, IPv6
received_chain30%Chaîne SMTP (from→by), TLS version, cipher
domain_arc40%Domaine expéditeur, ARC-Seal, ARC-Auth
ip_reputation55%IPQualityScore + AbuseIPDB + VirusTotal en parallèle
spf73%pass / fail / neutral / unknown
dkim85%pass / fail / neutral / unknown
dmarc/complete100%Résumé final complet

Vérifications des protocoles

ProtocoleCe qui est vérifié
SPFLe serveur expéditeur est-il autorisé par le domaine ? (enregistrement DNS TXT)
DKIMLa signature cryptographique du message est-elle valide ?
DMARCLa politique d'alignement SPF/DKIM est-elle respectée ?
rDNSL'IP de l'expéditeur correspond-elle à un nom de domaine valide ?
ARCLa chaîne d'authentification est-elle préservée par les relais ?

Réputation IP (optionnel)

Si des clés API sont configurées dans les Paramètres, l'analyse enrichit le résultat avec :

IPQualityScore : score de fraude (0-100), pays, FAI, détection VPN/Proxy/Tor, abus récent
AbuseIPDB : pourcentage de confiance d'abus, signalements communautaires, liste blanche
VirusTotal : détections malveillantes/suspectes/saines, ASN, propriétaire AS

Analyse spam par patterns

Après l'analyse des headers, le contenu est comparé à 29+ patterns issus de sources multiples :

  • Formule : patternScore × 0.6 + headerScore × 0.4
  • Catégories : phishing, scam, malware, commercial, banking, tech_support, sextortion, delivery
  • Résultat : score de 0 à 100, niveau de menace, raisons expliquées
ScoreNiveauSignification
0–30🟢 safeEmail probablement légitime
31–60🟡 suspiciousÀ vérifier manuellement
61–100🔴 dangerousEmail très probablement malveillant

Actions disponibles

  • Coller depuis presse-papiers — bouton Coller avec navigator.clipboard.readText()
  • Nouvelle analyse — reset complet du formulaire
  • Lancer vers Make — envoyer les headers + résultat au scénario Make.com configuré
  • Lancer vers n8n — déclencher le workflow n8n configuré

Mail Dashboard (/dashboard)

Statistiques

5 compteurs cliquables en haut de page :

  • Total — toutes les analyses
  • Sûrsthreat_level = low
  • Suspectsthreat_level = medium
  • Dangereuxthreat_level = high
  • Spammarked_spam = true

Cliquer sur un compteur filtre instantanément la liste.

Recherche

Recherche en temps réel sur : expéditeur, sujet, domaine, IP, contenu des headers.

Cards d'analyse

Chaque analyse affiche :

  • Nom expéditeur + adresse + destinataire + sujet
  • Date formatée (timezone Europe/Zurich)
  • Badges SPF / DKIM / DMARC (✅ pass / ❌ fail / ⚠️ neutral)
  • Barre de réputation IP colorée
  • Badge niveau de menace (SÛR / SUSPECT / DANGER)

Détails expandables

En cliquant sur une card, les détails suivants s'affichent :

Informations Email : De, À, Sujet, Date
Received Headers : Serveur SMTP, Hostname, IP (mise en valeur), Date
Identifiants : X-Received By, IPv6, Sender IPv4, Domain, Message-ID, Return-Path
Réputation IP : résultats IPQS/AbuseIPDB/VirusTotal par IP
Chaîne SMTP : hop par hop avec from/by

Actions par analyse

ActionDescription
Toggle spamMarquer/démarquer manuellement
Déclencher MakeEnvoyer à Make.com
Déclencher n8nEnvoyer à n8n
Copier JSONCopie le résultat complet
SupprimerRetirer de l'historique
Vider toutSupprimer tout l'historique

Le bouton Détails dans "Analyses récentes" navigue vers le Dashboard et met en surbrillance la card correspondante via ?highlight=<id> (disparaît après 3 secondes).


Persistance des données

ModeStockageFonctionnalités
AuthentifiéSupabase PostgreSQLMulti-device, sync temps réel
Non-authentifiélocalStorageMono-device, local uniquement

Si l'INSERT Supabase échoue (réseau, RLS), un fallback localStorage est activé automatiquement avec un toast d'avertissement.


Système de crédits

  • 5 analyses/jour partagés avec BlocNumEtSMS
  • Reset automatique à minuit UTC
  • Barre de progression visuelle (vert → jaune → rouge selon consommation)
  • Stocké dans localStorage['dailyCredits']

Voir CREDITS-SYSTEM.md pour les détails.