Penguin Mail porta su Linux Gmail, Outlook, OpenPGP e AI locale in un solo client

Penguin Mail 1.0 è un client Linux in Rust per Gmail, Microsoft, IMAP e POP3, con calendari, OpenPGP, S/MIME e AI opzionale eseguibile anche in locale tramite Ollama o LM Studio. Ecco come funziona.

Un client di posta per Linux che riunisca Gmail, Microsoft 365, account IMAP, calendario, contatti, OpenPGP e funzioni di intelligenza artificiale senza obbligare l’utente a passare da un server intermedio. È sostanzialmente questo Penguin Mail, applicazione open source che il 6 ottobre 2026 ha debuttato in veste finale (sito ufficiale e download).

Il software nasce in un settore che su Linux ha già riferimenti storici come Thunderbird ed Evolution, ma sceglie un’impostazione diversa: interfaccia GTK moderna, forte integrazione con i servizi dei provider e dati conservati principalmente sul computer dell’utente. Scritto in Rust, Penguin Mail punta soprattutto ai desktop Linux più aggiornati, pur senza limitarsi a GNOME.

Abbiamo verificato il contenuto del repository pubblico su GitHub che comprende componenti separati per Gmail, Microsoft Graph, IMAP, POP3, CalDAV, CardDAV, Sieve, OpenPGP e S/MIME. L’obiettivo è portare dentro una sola applicazione posta, calendari, contatti, regole lato server e automazioni assistite dall’AI.

Interfaccia Penguin Mail Linux

Penguin Mail parla direttamente con Gmail e Microsoft

Uno degli aspetti più interessanti riguarda l’architettura. Per gli account Google, Penguin Mail utilizza direttamente le API Gmail, People, Calendar e, quando necessario, Drive; con Outlook.com, Hotmail, Live e Microsoft 365 comunica invece tramite Microsoft Graph. Non esiste un’infrastruttura Penguin Mail che riceve e ritrasmette la posta.

Il client di posta elettronica funziona completamente sul PC dell’utente e dialoga con il provider prescelto. Per gli account Google e Microsoft l’autenticazione avviene nel browser tramite OAuth 2.0 con PKCE: Penguin Mail non riceve quindi la password dell’account. I refresh token, cioè le credenziali a lunga durata usate per ottenere nuovi token di accesso quando quelli correnti scadono, sono salvati nel portachiavi sicuro del desktop Linux, ad esempio GNOME Keyring o un servizio compatibile con Secret Service.

Gli access token, che hanno invece durata limitata e servono per effettuare concretamente le richieste alle API di Gmail o Microsoft Graph, restano normalmente solo nella memoria del processo. Penguin Mail conserva in modo persistente soltanto ciò che serve per rinnovare la sessione, mentre evita di scrivere i token temporanei utilizzati durante il normale funzionamento.

Per quanto riguarda l’uso dei tradizionali protocolli IMAP, POP3 e SMTP, Penguin Mail tenta di individuare automaticamente i parametri corretti partendo dal dominio specificato. Se il provider offre anche CalDAV, CardDAV o ManageSieve, il client prova a individuare pure calendario, rubrica e gestione delle regole.

Calendario eventi Penguin Mail

Una casella unificata senza trasformare tutto in un nuovo servizio cloud

Penguin Mail può mostrare tutti gli account in un’unica casella di posta in arrivo oppure separatamente. La sincronizzazione continua anche quando la finestra principale è chiusa, con l’icona nell’area di notifica che visualizza il conteggio dei messaggi non letti e offre azioni rapide.

Nel caso di Gmail il client conserva alcune caratteristiche tipiche dell’interfaccia Web di Google: categorie Principale, Promozioni, Social e Aggiornamenti, ricerca con la sintassi Gmail, etichette e gestione dei filtri. C’è anche una funzione chiamata Hide My Email che sfrutta il plus addressing: può generare cioè indirizzi del tipo nome+identificativo@gmail.com e applicare successivamente una regola per cestinare i messaggi inviati a quello specifico alias.

Avevamo parlato di questo “trucco” in un articolo incentrato sugli alias Gmail e su come avere infiniti indirizzi email.

Il client aggiunge inoltre Smart Mailboxes, VIP, promemoria, Follow Up per i messaggi inviati che non hanno ricevuto risposta, esportazione in formato mbox o EML, invio posticipato e Undo Send. La cartella della posta in uscita conserva in locale gli eventuali messaggi che non riescono a partire e riprova quando torna disponibile la rete.

OpenPGP e S/MIME: le chiavi restano in GnuPG

Per firma digitale e cifratura, Penguin Mail non implementa un proprio archivio crittografico.

Si appoggia a GnuPG, utilizzando gpg per OpenPGP e gpgsm per S/MIME: il client di posta, quindi, non conserva le chiavi private e non chiede direttamente le relative passphrase: la gestione passa attraverso GnuPG e pinentry.

Penguin Mail consente anche di importare chiavi e certificati nei formati ASC, P12 e PEM dalle preferenze. Nel compositore, firma e cifratura appaiono come operazioni unificate, indipendentemente dallo standard usato.

I messaggi HTML sono isolati e le immagini remote restano bloccate

Una parte importante della superficie d’attacco di un client di posta deriva dal rendering dei messaggi HTML.

Penguin Mail usa WebKitGTK, motore WebKit adattato alle applicazioni Linux basate su GTK: serve a visualizzare contenuti HTML, CSS e risorse Web dentro programmi desktop, quindi in Penguin Mail anche le email in formato HTML.

Pur servendosi di questo componente, Penguin Mail disabilita JavaScript e visualizza il contenuto all’interno di una sandbox. Le risorse remote subiscono inoltre un doppio blocco: un filtro di WebKit e una Content-Security-Policy applicata alla pagina.

Da un lato, cioè, WebKit impedisce il caricamento automatico di immagini e altri elementi provenienti da server esterni; dall’altro Penguin Mail applica una serie di regole che limitano contenuti e origini che possono essere raggiunti dal messaggio HTML. Anche se un’email include immagini, script o riferimenti a domini esterni, il client riduce la possibilità che tali elementi siano caricati senza il consenso dell’utente.

È una precauzione utile, per esempio, rispetto ai classici tracking pixel, perché il semplice download di una risorsa può comunicare al mittente che il messaggio è stato aperto, rivelargli l’indirizzo IP pubblico dell’utente e ad altre informazioni sulla connessione.

L’AI è opzionale e può funzionare completamente in locale

Penguin Mail integra un assistente AI richiamabile con la combinazione di tasti CTRL+J, ma la funzione rimane spenta finché l’utente non sceglie esplicitamente un modello. È uno dei punti che distinguono maggiormente il progetto da diversi client che collegano l’intelligenza artificiale a un servizio remoto predefinito.

L’assistente può usare Ollama, LM Studio o un server compatibile con le API OpenAI eseguito sul sistema locale oppure in LAN. In alternativa sono supportati Anthropic API e Claude Code.

La funzionalità offerta da Penguin Mail può essere sfruttata per riassumere conversazioni, preparare risposte, individuare messaggi ancora senza replica, consultare calendari e contatti e modificare alcune impostazioni.

Come ricorda la privacy policy di Penguin Mail, usando Anthropic o Claude Code i dati necessari alla richiesta raggiungono Anthropic: traduzioni, interrogazioni della casella e altre funzioni inviano al modello materiale dell’utente. Per evitare qualunque trasferimento di informazioni, si può evitare l’uso delle funzionalità AI oppure servirsi di modelli AI locali.

MCP e skills ampliano l’assistente, ma aumentano anche il “raggio d’azione”

La parte AI non si limita a supportare alcuni modelli: Penguin Mail permette l’uso di client MCP (Model Context Protocol) aggiunti dall’utente, che possono fornire nuovi strumenti all’assistente, e “skills” composte da istruzioni e script.

Il progetto cerca comunque di introdurre una serie di misure di contenimento: per impostazione predefinita l’assistente chiede conferma prima di inviare posta, modificare impostazioni Gmail o calendari oppure richiamare strumenti esterni. Gli script delle skills girano in una sandbox senza accesso automatico alla posta, alle chiavi, alla home dell’utente o alla rete; l’accesso deve essere autorizzato.

È comunque una funzione da configurare con attenzione. Un server MCP esterno riceve i parametri delle chiamate che l’assistente decide di inoltrargli e tali parametri possono contenere informazioni provenienti dai messaggi. Penguin Mail non può controllare che cosa faccia successivamente un servizio MCP gestito da terzi.

Un client promettente, ma la versione 1.0 va valutata come tale

Penguin Mail mette insieme molte funzioni che normalmente richiedono applicazioni o estensioni differenti: account Gmail e Microsoft gestiti tramite API native, IMAP e POP3, calendario, contatti, Sieve, OpenPGP, S/MIME e un assistente AI che può restare completamente locale. Il codice sorgente è disponibile su GitHub con licenza GNU GPL: di fatto siamo quindi di fronte a un software libero.

La struttura tecnica appare particolarmente interessante per chi vuole un client Linux moderno ma non desidera affidare l’intera casella a un ulteriore servizio cloud.

Alcune caratteristiche vanno comunque “soppesate”: il database locale non dispone di cifratura propria, l’AI remota modifica inevitabilmente il modello di privacy e la compatibilità dei pacchetti nativi richiede distribuzioni Linux piuttosto recenti.

Qualche nota sullo sviluppo e sull’uso di agenti AI

Un’ultima nota riguarda lo sviluppo del progetto: il repository, al momento della nostra verifica, comprende oltre 1.800 commit e una struttura piuttosto articolata, con moduli separati per sincronizzazione, Gmail, Microsoft Graph, IMAP, crittografia, calendario e interfaccia. Non siamo quindi dinanzi al classico piccolo esperimento dimostrativo composto da poche centinaia di righe di codice.

Ci sono però indizi molto chiari sull’impiego di strumenti AI durante lo sviluppo. Nel repository compare un file AGENTS.md pensato esplicitamente per agenti di programmazione e viene indicato l’uso di worktree sotto .claude/worktrees/ per far lavorare agenti in parallelo. È perciò verosimile che almeno una parte del lavoro sia stata svolta con l’assistenza di strumenti come Claude Code.

Di per sé non è un elemento sufficiente per giudicare negativamente Penguin Mail. Il problema non è infatti se una funzione sia stata proposta o scritta da un modello generativo, ma come il codice sia stato verificato. Nel caso di un client di posta la soglia deve essere particolarmente alta: il programma gestisce token OAuth, messaggi HTML potenzialmente ostili, allegati, chiavi crittografiche e dati personali. Resta comunque un “software 1.0” molto giovane: l’uso di agenti AI rende ancora più importante la revisione del codice, l’audit delle parti sensibili e soprattutto l’esperienza accumulata sul campo prima di considerarlo maturo per impieghi particolarmente delicati.

Ti consigliamo anche

Link copiato negli appunti