README

EmailHandler

Un'app desktop gratuita che ripulisce la tua casella di posta con l'AI.

macOS · Windows · Linux · Gmail + Outlook · English + Italiano

EmailHandler: pulisci la posta, trasformala in un gioco

Cosa fa

Etichetta ogni emailJev (il modello decisionale di TypeSafe) mette ogni email in una delle 11 etichette colorate (Fatture, Ordini, Newsletter, Promozioni, Social, Lavoro, Personale, Viaggi, Sicurezza, Spam, Altro), nella tua lingua.
Trova ciò che contaUn'etichetta Importanti per ricevute, contratti, ricette mediche e conversazioni vere. Si affianca all'etichetta normale.
Trova cosa puoi eliminarePromozioni, avvisi scaduti, vecchi aggiornamenti di spedizione. Le email vecchie (6 mesi o più) ricevono un punteggio di "importanza oggi" da 0 a 4, così puoi liberarti di anni di arretrato, etichettato o no.
Disiscrive in bloccoCon un clic (RFC 8058) quando il mittente lo supporta, con un'email quando non lo fa, con un link come ultima risorsa. Mai per lo spam.
Pulisce per mittenteEtichetta o cestina tutto ciò che arriva da un mittente in un periodo, vedendo prima il numero esatto.
Svuota il CestinoUn clic, definitivo, con una conferma.
Più accountGmail e Outlook fianco a fianco, una sola chiave Jev per tutti.

Niente succede da solo. Ogni azione richiede il tuo clic e mostra prima il numero esatto di email. Le email speciali (Gmail) e contrassegnate (Outlook) non vengono mai toccate. Eliminare sposta prima nel Cestino (30 giorni), a meno che tu non lo svuoti.

Privata per scelta

Non esiste un server di EmailHandler. Tutto gira sul tuo computer:

Accesso

Fai clic su Accedi con Google o Accedi con Microsoft. Il browser apre la solita pagina di accesso del provider; approva l'accesso e torni nell'app. Tutto qui: niente configurazione, niente codici da copiare.

ProviderFunziona con
GoogleGmail, Google Workspace
MicrosoftOutlook.com, Hotmail, Live, MSN, Microsoft 365

Durante la beta Google fa accedere solo i tester invitati e mostra "Google non ha verificato questa app": fai clic su Avanzate → Vai a EmailHandler. Microsoft potrebbe indicare l'app come "non verificata". Entrambi gli avvisi spariscono quando l'app viene verificata.

Sviluppo

Richiede Node 24 (nvm use).

npm install
npm start          # dev server Angular su :4300 + finestra Electron
npm test           # test unitari (SSRF guard, OAuth/PKCE, account, mapping Graph, disiscrizione)
npm run test:it    # test di integrazione Outlook dentro Electron (Microsoft Graph finto)
npm run typecheck  # UI (template inclusi) + Electron
npm run app        # compila, poi avvia l'app compilata
npm run brand      # rigenera icona, og-image e anteprima social di GitHub da build/*.svg|html

La documentazione tecnica, con cosa fa ogni file e funzione, è in docs/TECHNICAL.md (nel codice sorgente).

Client ID (solo per sviluppatori)

L'accesso richiede un client ID gratuito per provider. Identifica l'app, non l'utente, ed è incluso nell'app, quindi gli utenti non lo vedono mai.

  1. Creali una volta: guida passo passo in docs/guida-client-id.html (nel codice sorgente).
  2. Mettili in oauth.config.json nella radice del repo, seguendo oauth.config.example.json. Il file è in .gitignore e viene incluso in ogni build.
  3. In sviluppo puoi usare invece EH_GOOGLE_CLIENT_ID, EH_GOOGLE_CLIENT_SECRET e EH_MICROSOFT_CLIENT_ID.

Una build senza client ID mostra il pulsante di quel provider disattivato ("L'accesso non è disponibile in questa build").

Creare gli installer (gratis, non firmati)

npm run dist:mac     # .dmg + .zip (arm64, x64), firma ad-hoc
npm run dist:win     # installer NSIS (x64, arm64), non firmato
npm run dist:linux   # AppImage + .deb (x64, arm64)
npm run pack         # app non impacchettata per il sistema attuale, per i test

I file finiscono in release/. Conviene compilare ogni sistema sulla sua macchina, per esempio sui runner gratuiti di GitHub Actions.

Non essendoci un certificato di firma a pagamento, il primo avvio richiede un passaggio in più:

Struttura

electron/   processo principale: finestra senza cornice, protocollo app:// + CSP, IPC,
            accesso (Google + Microsoft), Gmail + Microsoft Graph, Jev,
            disiscrizione con un clic (SSRF guard), segreti cifrati
src/        UI Angular (setup + app), EN/IT; parla con electron/ solo tramite window.emailHandler
build/      icona, immagine di condivisione, entitlements macOS
tools/      generatore delle immagini del brand
docs/       documentazione tecnica + guida ai client ID
landing/    vecchia landing page web (non compilata)