Comment nous avons construit Tempy.email avec une approche Privacy-First
La plupart des services email stockent vos messages dans des bases de données, les indexent pour la recherche, conservent des sauvegardes et les conservent indéfiniment.
Nous faisons le contraire : Tout vit en mémoire. Quand votre timer expire, les données disparaissent.
Le problème de confidentialité avec l'email traditionnel
Quand vous utilisez Gmail, Outlook ou tout service de messagerie traditionnel :
- Emails stockés sur disque → Peuvent être saisis par la justice, piratés ou vendus
- Indexés pour la recherche → Crée des métadonnées sur vos communications
- Sauvegardés → De multiples copies existent, augmentant l'exposition
- Conservés indéfiniment → Vos emails vieux de 10 ans existent toujours
- Analysés pour la publicité → Le contenu est analysé pour cibler les publicités
- Logs conservés → Adresses IP, horodatages, patterns d'accès tracés
Vous ne supprimez jamais vraiment quoi que ce soit.
Même si vous appuyez sur « supprimer », les données peuvent exister dans :
- Les bandes de sauvegarde
- Les index de recherche
- Les logs serveur
- Les archives de conformité
- Les systèmes de rétention légale
Notre approche : Architecture mémoire uniquement
tempy.email est construit sur un principe : Si ce n'est pas en RAM, ça n'existe pas.
Email traditionnel :
Utilisateur → Serveur Web → Base de données → Disque → Sauvegardes → Archives
(Les données vivent pour toujours)
tempy.email :
Utilisateur → Serveur Web → Redis (RAM uniquement) → Expiration → Disparu
(Les données vivent 10 minutes)
Pas de stockage persistant
Ce que nous N'AVONS PAS :
- ❌ Pas de PostgreSQL, MySQL ou base de données sur disque
- ❌ Pas de stockage fichiers (S3, disque, NAS)
- ❌ Pas de sauvegardes
- ❌ Pas d'archives
- ❌ Pas de logs de contenu email
- ❌ Pas de « soft deletes » (marquer comme supprimé mais conserver les données)
Ce que nous AVONS :
- ✅ Redis (base de données clé-valeur en mémoire)
- ✅ TTL (Time-To-Live) sur chaque clé
- ✅ Expiration automatique
Comment fonctionne le stockage des emails
Quand un email arrive :
// Stocker l'email dans Redis avec TTL
await redis.set(
`mailbox:${address}:emails`,
JSON.stringify(email),
'EX', 600 // Expire en 600 secondes (10 min)
);
Après 10 minutes :
- Redis supprime automatiquement la clé
- La mémoire est libérée
- Les données sont complètement disparues (pas marquées comme supprimées, réellement disparues)
Il n'y a pas de processus de « récupération » car il n'y a rien à récupérer.
Et les logs serveur ?
Nous minimisons la journalisation :
Logs serveur traditionnels :
2026-02-12 10:15:23 L'utilisateur [email protected] s'est connecté depuis 203.0.113.5
2026-02-12 10:15:45 [email protected] a ouvert l'email "Réinitialisation de mot de passe"
2026-02-12 10:16:12 [email protected] a supprimé 3 emails
Logs tempy.email :
2026-02-12 10:15:23 Boîte aux lettres créée (aucune adresse email journalisée)
2026-02-12 10:15:45 Email reçu (aucun contenu journalisé)
2026-02-12 10:25:23 Boîte aux lettres expirée
Nous journalisons les événements, pas les données identifiables.
Fonctionnalités de confidentialité
1. Pas de comptes utilisateur
Vous ne pouvez pas créer de compte même si vous le vouliez :
- Pas de formulaire d'inscription
- Pas de mots de passe
- Pas de page « Mon compte »
- Pas de base de données utilisateurs
Pourquoi : Les comptes créent de l'identité. Nous ne voulons pas savoir qui vous êtes.
2. Pas de tracking ni d'analytics
De nombreux services « privacy-first » utilisent encore :
- Google Analytics
- Facebook Pixel
- Mixpanel
- Hotjar
Nous utilisons : Aucun des outils ci-dessus.
Nous ne suivons que :
- Total de boîtes aux lettres créées (compteur)
- Total d'emails traités (compteur)
Nous ne suivons pas :
- Qui les a créées
- Quand elles ont été créées
- Depuis quelle IP
- Quel navigateur a été utilisé
3. Pas d'analyse du contenu des emails
Nous n'analysons jamais le contenu des emails pour :
- La publicité
- L'entraînement de machine learning
- La détection de patterns
- La classification de contenu
Les emails passent par notre système sans être lus par des humains ni des algorithmes.
4. Pas de journalisation d'IP
Nous ne journalisons pas :
- Votre adresse IP
- Votre géolocalisation
- Votre FAI
- Votre empreinte d'appareil
Pourquoi : Même les logs d'IP « anonymisés » peuvent souvent être désanonymisés par des attaques de corrélation.
5. Pas de services tiers
Nous n'utilisons pas :
- De CDN qui trackent (Cloudflare en mode confidentialité uniquement)
- De plateformes analytics
- De réseaux publicitaires
- De widgets de réseaux sociaux
- De polices tierces (Google Fonts servis localement)
Pourquoi : Chaque service tiers est une fuite de données potentielle.
Implémentation technique
Configuration Redis
// Toutes les clés ont un TTL par défaut
const DEFAULT_TTL = 600; // 10 minutes
// Clé de boîte aux lettres
await redis.setex(
`mailbox:${address}`,
DEFAULT_TTL,
JSON.stringify({ created: Date.now() })
);
// Clé d'email
await redis.rpush(`mailbox:${address}:emails`, emailJson);
await redis.expire(`mailbox:${address}:emails`, DEFAULT_TTL);
Nettoyage automatique
Redis gère l'expiration automatiquement :
T+0 : Email arrive → Stocké dans Redis
T+600s : TTL expire → Redis supprime la clé → Mémoire libérée
Pas de cron jobs. Pas de nettoyage manuel. Pas de « soft deletes ».
Assainissement des emails
Avant de stocker les emails, nous assainissons le HTML pour empêcher :
- Les attaques XSS
- Les pixels de tracking
- Les scripts malveillants
- Les fuites de confidentialité
var sanitizer = new HtmlSanitizer();
sanitizer.AllowedTags = ["p", "a", "b", "i", "ul", "ol", "li"];
// Pas de <img>, pas de <script>, pas de tracking
var cleanHtml = sanitizer.Sanitize(rawHtml);
Ce à quoi nous ne pouvons pas accéder
Même si nous le voulions (ce n'est pas le cas), nous ne pouvons physiquement pas :
- Récupérer des emails supprimés → Aucune sauvegarde n'existe
- Voir des données historiques → Le TTL supprime tout
- Tracer le comportement des utilisateurs → Aucun log à analyser
- Identifier les utilisateurs → Pas de comptes, pas d'IPs journalisées
- Répondre à des demandes de données → Aucune donnée à fournir
Ce n'est pas une décision politique. C'est architectural.
Compromis que nous acceptons
Le design privacy-first signifie accepter des limitations :
Nous NE POUVONS PAS offrir :
- ❌ Recherche d'emails (pas d'indexation)
- ❌ Stockage longue durée (10 min par défaut)
- ❌ Récupération d'emails (une fois expirés, c'est fini)
- ❌ Comptes utilisateur (impossible de « sauvegarder » des boîtes aux lettres)
- ❌ Transfert d'emails vers votre vraie boîte
Nous POUVONS offrir :
- ✅ Confidentialité totale
- ✅ Zéro tracking
- ✅ Suppression instantanée
- ✅ Aucun risque de violation de données (il n'y a pas de données à pirater)
- ✅ Tranquillité d'esprit
Comparaison avec l'email « axé sur la confidentialité »
| Fonctionnalité | ProtonMail | Tutanota | tempy.email |
|---|---|---|---|
| Chiffrement | ✅ E2E | ✅ E2E | ⚠️ En transit uniquement |
| Stockage permanent | ✅ Oui | ✅ Oui | ❌ Non (TTL 10 min) |
| Comptes utilisateur | ✅ Oui | ✅ Oui | ❌ Pas de comptes |
| Risque de saisie | ⚠️ Données chiffrées existent | ⚠️ Données chiffrées existent | ✅ Aucune donnée à saisir |
| Journalisation IP | ⚠️ Optionnel | ⚠️ Optionnel | ❌ Jamais |
| Cas d'usage | Email privé permanent | Email privé permanent | Jetable/test |
ProtonMail et Tutanota sont excellents pour un email privé permanent.
tempy.email est pour un usage jetable où vous ne voulez pas que les données existent du tout.
En résumé
La plupart des services disent : « Nous ne regarderons pas vos données » Nous disons : « Nous ne pouvons pas regarder vos données (elles n'existent pas assez longtemps) »
La plupart des services disent : « Nous les supprimerons si vous demandez » Nous disons : « Elles s'auto-suppriment en 10 minutes que vous le demandiez ou non »
La plupart des services disent : « Nous sommes axés sur la confidentialité » Nous disons : « La confidentialité est notre architecture »
C'est la confidentialité par conception, pas la confidentialité par politique.
Essayez : Générez une adresse temporaire et voyez par vous-même. Dans 10 minutes, cet email aura disparu pour toujours. Pas « archivé ». Pas « supprimé ». Disparu.