📱 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 :
| Client | Procédure |
|---|---|
| Gmail | Ouvrir l'email → ⋮ → "Afficher l'original" → Copier tout |
| Outlook | Ouvrir → Fichier → Propriétés → En-têtes Internet |
| Apple Mail | Ouvrir → Présentation → Message → En-têtes longs |
| Thunderbird | Ouvrir → Affichage → En-têtes → Tous |
Les 8 étapes d'analyse (SSE)
| Étape | Progression | Informations extraites |
|---|---|---|
basic_parsing | 10% | From, Subject, Date, Message-ID, Return-Path, IPs |
ip_parsing | 20% | IPv4 publiques filtrées, IPv6 |
received_chain | 30% | Chaîne SMTP (from→by), TLS version, cipher |
domain_arc | 40% | Domaine expéditeur, ARC-Seal, ARC-Auth |
ip_reputation | 55% | IPQualityScore + AbuseIPDB + VirusTotal en parallèle |
spf | 73% | pass / fail / neutral / unknown |
dkim | 85% | pass / fail / neutral / unknown |
dmarc/complete | 100% | Résumé final complet |
Vérifications des protocoles
| Protocole | Ce qui est vérifié |
|---|---|
| SPF | Le serveur expéditeur est-il autorisé par le domaine ? (enregistrement DNS TXT) |
| DKIM | La signature cryptographique du message est-elle valide ? |
| DMARC | La politique d'alignement SPF/DKIM est-elle respectée ? |
| rDNS | L'IP de l'expéditeur correspond-elle à un nom de domaine valide ? |
| ARC | La 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
| Score | Niveau | Signification |
|---|---|---|
| 0–30 | 🟢 safe | Email probablement légitime |
| 31–60 | 🟡 suspicious | À vérifier manuellement |
| 61–100 | 🔴 dangerous | Email 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ûrs —
threat_level = low - Suspects —
threat_level = medium - Dangereux —
threat_level = high - Spam —
marked_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
| Action | Description |
|---|---|
| Toggle spam | Marquer/démarquer manuellement |
| Déclencher Make | Envoyer à Make.com |
| Déclencher n8n | Envoyer à n8n |
| Copier JSON | Copie le résultat complet |
| Supprimer | Retirer de l'historique |
| Vider tout | Supprimer tout l'historique |
Navigation depuis l'analyseur
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
| Mode | Stockage | Fonctionnalités |
|---|---|---|
| Authentifié | Supabase PostgreSQL | Multi-device, sync temps réel |
| Non-authentifié | localStorage | Mono-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.