C'EST QUOI ?
RustMailer est un middleware email self-hosted qui encapsule IMAP, SMTP et la Gmail API derrière une seule API REST et gRPC. Il gère la synchronisation multi-comptes, l'envoi templaté, le tracking d'ouvertures et la diffusion d'événements, pour que ton application n'ait plus à assembler trois bibliothèques mail à la main. Un binaire d'environ 60 Mo, aucune dépendance externe, pas de Redis.
POURQUOI C'EST INTÉRESSANT ?
- Une API pour trois protocoles : IMAP, SMTP et Gmail API derrière la même interface REST et gRPC. Ton code ne change pas selon le provider du compte.
- Sync IMAP incrémentale sérieuse : stratégie basée sur les UID, sélection de dossiers, synchro fenêtrée ou par plage de dates. Pas de re-scan complet à chaque tour.
- Événements sortants scriptables : chaque changement de boîte part en webhook ou dans NATS, avec transformation du payload en VRL pour filtrer et remodeler avant expédition.
- OAuth2 intégré : flow complet avec UI d'autorisation web, gestion automatique des access et refresh tokens. Gmail et Outlook branchés sans code maison.
- Zéro infra annexe : écrit en Rust avec un store clé-valeur embarqué, faible empreinte mémoire, déployable en un
docker run. Exporter Prometheus inclus. - Webmail de debug intégré : un client mail léger et un dashboard admin pour inspecter les comptes, les headers et les mails synchronisés sans sortir un client externe.
CAS D'USAGE
- Plateforme SaaS devant synchroniser les boîtes mail de milliers d'utilisateurs, en IMAP comme en Gmail.
- CRM qui rattache automatiquement les échanges email aux fiches clients via webhooks.
- Outil de marketing automation avec templates dynamiques, tracking d'ouvertures et de clics.
- Support client temps réel : les nouveaux messages arrivent dans NATS et alimentent la file de tickets.
- Backend d'envoi transactionnel routé vers un MTA maison ou un provider tiers selon le compte.
À SAVOIR
Le code source est intégralement public et auditable, mais la licence est commerciale : essai gratuit de 14 jours avec comptes illimités, puis clé de licence obligatoire en production. Les Pull Requests ne sont pas acceptées à ce stade du projet.
