martedì 4 settembre 2012

Recuperare mailbox con Thunderbird

Premessa

Uso Thunderbird da anni, perché è un eccellente client di posta, gratuito, universale e ricco di funzionalità avanzate proprie oppure realizzate tramite le numerose estensioni.
Probabilmente lo avrei utilizzato anche se il mio PC non fosse stato Linux Ubuntu.

Rispetto a Outlook, oltre alla questione del costo (Outlook è parte di Office), Thunderbird ha l'enorme vantaggio di organizzare le mailbox su singoli file: questo consente di limitare i danni nel caso (raro ma possibile) un file si corrompa. Con Outlook ho un invece solo .pst monolitico, che cresce, cresce, cresce fino a quando non assume dimensioni ingestibili: inevitabilmente aumenta la probabilità di danneggiarsi e di perdere il proprio archivio di posta per intero.

Come qualsiasi altro software complesso anche Thunderbird è perfettibile: in particolare, quando uno dei file di mailbox si corrompe, il programma termina improvvisamente, poco dopo la partenza, senza fornire nessuna indicazione. E' quello che mi è successo un giorno e di seguito spiego come si risolve questo problema, ripristinando la situazione corretta e senza perdere nenache una mail.

Manifestazione del guasto

Quando aprite il vostro Thunderbird questo, dopo un 3-4 secondi abortisce. Dalle poche indicazioni che vengono restituite si capisce che sta collegandosi ai server (nel mio caso gestisco 4 caselle di posta) e sta leggendo i file locali.
Prima di terminare, Thunderbird mostra la finestra che chiede all'utente se inviare un report agli sviluppatori.
Il guasto appare improvvisamente e in particola re non è correlato e non segue alcun aggiornamento del software.

Verifica della causa del guasto

Thunderbird memorizza i suoi file con mail sotto la directory $HOME/.thunderbird/xxxx.default/Mail (dove xxxx è una stringa arbitraria di caratteri).
In particolare, nel tipo di guasto che sto descrivendo, gli imputati sono i "Local Folders", ossia le mailbox in cui Thunderbird memorizza i messaggi di posta che si vogliono conservare sul disco locale.
Per verificare se si tratta di questo basta spostare "Local Folders" nella directory padre: se a seguito di questa operazione Thunderbird torna a funzionare (senza presentare ovviamente le mail memorizzate localmente) significa che uno o più file con le mail locali è corrotto.

Cosa provoca l'abort

Thunderbird utilizza due tipi di file: .sbd (che contiene le mail effettive) e .msf (una sorta di file indice): per esempio, tra le strutture per conservare le mail, posso essermi creata una mailbox Personali; se questa mailbox NON ha sottomailbox (conserva solo messaggi) esisteranno solo i file Personali.sbd e Personali.msf mentre se sono presenti sottocartelle, Thunderbird creerà anche la directory Personali (inizialmente vuota). Il file che si corrompe è di tipo .msf e deve essere rigenerato con la seguente procesura.

La riparazione

A Thunderbird inattivo, la directory "Local Folders" deve essere subito spostata in altro luogo sicuro del disco (o su altro disco). Quindi si segue la procedura di ricostruzione, che prevede di attivare Thunderbird e operare la ricreazione manuale di tutte le immediate sottocartelle di "Local Folders" (così come appaiono nel file system). Ogni volta che creo una sottocartella provvedo a spostare il relativo file .sbd (se esiste) al livello della nuova sottocartella. Se devo ricreare Personale quindi, dopo aver agito in Thunderbird come descritto, sposto il solo file Personale.sbd sovrascrivendo quello che trovo, (che era un fake creato da Thunderbird).
Thunderbird a volte non mi vede subito il contenuto dei messaggi presenti in questo file, e quindi provvedo a riparare la mailbox: da Thunderbird tasto destro sul nome della mailbox e attivare la voce "Proprietà"; nella finestra che compare si seleziona "Ripara la cartella"; tutti i messaggi torneranno a essere visibili.

Questa procedura va ripetuta fino a non aver ricostruito in Thunderbird tutta la gerarchia di cartelle e sottocartelle. Chiudendo e riaprendo Thunderbird si vedrà che tutti i messaggi sono riapparsi e che il fastidioso crash a inizio lavoro non è più presente.