Outlook Express: Salvare tutta la Posta, da Excel. ( per Windows XP e Windows 2000 ) - pagina vista: volte

Una necessità sentita da molti utenti, è quella di poter salvare i messaggi di posta inviati e/o ricevuti, per poterli riavere a disposizione in caso di un crash o di una formattazione dell'hard-disk.

Esistono vari modi per effettuare un back-up delle cartelle di posta, o quanto meno, la possibilità di poter salvare ogni singolo messaggio (o almeno quelli che interessano) semplicemente scegliendo, dal menu "File" di Outlook Express, "Salva con nome", selezionando quindi una cartella su un hard-disk dove salvare il messaggio; il file salvato prenderà l'estensione ".eml", e sarà poi leggibile tramite Outlook Express, semplicemente doppio cliccando sul file, ma se conserviamo tutta la posta inviata e ricevuta, salvare un file per volta  può diventare noioso o dispersivo : meglio salvare in blocco, e in un colpo solo.

In questo esercizio ci occuperemo del back-up completo di tutte le cartelle di posta presenti in Outlook Express, da eseguire tramite istruzioni in vba di Excel.

Premessa.
Forse non tutti sanno come trovare la cartella che contiene i file di posta (.dbx), o che i messaggi di posta (inviati o ricevuti), non vengono memorizzati da Outlook E. sull'hard-disk, come singoli file, ma di ogni cartella che in Outlook contiene messaggi, viene creato un unico file che avrà il nome della cartella stessa, con l'estensione "dbx", come "Posta in arrivo.dbx", "Posta in uscita.dbx", "Posta inviata.dbx", ecc..  Questi file ".dbx" si trovano in una cartella dell'hard-disk, cartella che di solito non è visibile. Parliamo quindi delle impostazioni di Windows XP (o W2K) che è necessario modificare, per rendere rintracciabile e visibile la cartella contenente la posta. Una strada è questa:

Dal menù "Start" nella barra del Desktop, scegliamo "Programmi/Accessori/Esplora Risorse": clicchiamoci sopra col destro del mouse e dal menu che appare, scegliamo "Invia a.../Desktop(crea collegamento)". Ci ritroveremo sul desktop l'icona di "Esplora Risorse" (è diversa da "Risorse del computer"), la clicchiamo, e vedremo una finestra che ci mostrerà sulla sinistra tutte le risorse del computer, e nella parte destra vedremo il contenuto di ciò che avremo selezionato nella parte sinistra. Nella parte alta della finestra, sceglieremo la voce "Strumenti/Opzioni cartella" e nella nuova finestra "Opzioni Cartella" che si aprirà, sceglieremo: "Visualizza"; otterremo una visualizzazione delle impostazioni di visualizzazione, (vedi sotto), dove dovremo selezionare la voce "Visualizza cartelle e file nascosti" (vedi freccia rossa, immagine a sinistra). Un'altra voce che consiglio di modificare è la seguente: togliere il segno di spunta alla voce "Nascondi le estensioni per i tipi di file conosciuti (freccia rossa, immagine a destra):

Questo è quello che vedremmo con le impostazioni di default (Non visualizzare cartelle e file nascosti) a sinistra, e a destra come vedremo dopo che avremo modificato le impostazioni come suggerito: come si nota sono "spuntate" un bel pò di sottocartelle in più.

Queste modifiche ci consentiranno di vedere, in "Esplora Risorse", tutte le cartelle che di default non si vedono, e vedremo pure i nomi dei file comprensivi delle estensioni.

il percorso che porta alla cartella Outlook dove sono i file .dbx è il seguente:

C:\Documents and Settings\NomeUtente\Impostazioni locali\Dati applicazioni\Identities\{26A87879-A292-4BD5-8E10-0F1799EFA31C}\Microsoft\Outlook Express\..files .dbx

Attenzione: il percorso è uguale in tutti computer (WinXp e W2k), MA cambia in ogni computer la sottocartella "NomeUtente" e la sottocartella alfanumerica (quella tra parentesi graffe).

A questo punto, trovato il benedetto percorso che porta alla cartella Outlook Express, ognuno potrà copiarsi i file ivi contenuti in una cartella di soccorso, e ripetere l'operazione periodicamente, in modo da avere il back-up aggiornato.

E il vba che c'entra allora? A parte che le istruzioni che vedremo ci serviranno comunque a migliorare la confidenza con il CreateObject ed il FileSystemObject (vedi articolo in questa sezione) per lavorare con i file del nostro computer, avremo a disposizione un pulsante, e con un semplice click otterremo il back-up senza stare a "spulciare" tutte le sottocartelle.


Un ultimo suggerimento prima di passare all'esercizio, un'altra cosa che ci farebbe comodo salvare è L'Address Book, la Rubrica degli indirizzi, che spesso ci scordiamo di salvare, con improperi vari quando, riformattando, non troveremo più gli indirizzi dei nostri conoscenti. Riporto solo il percorso dove risiedono i due file che formano la rubrica, uno con estensione .wab, e l'altro .wab~ , che vanno salvati entrambi. Il percorso è leggermente diverso dal precedente:

C:\Documents and Settings\NomeUtente\Dati applicazioni\Microsoft\Address Book\..files .wab

I lettori più attenti potranno adattare le routine sotto anche per il salvataggio dei files della Rubrica.

La procedura.

Nella procedura che segue, parto dal presupposto che per il back-up dei file useremo una cartella di destinazione, sempre la stessa; inseriamo la verifica che se la cartella non esiste venga creata. Facciamo poi cercare (FileSearch + Lookin) i files .dbx, fornendo come origine percorso la cartella "Documents and Settings". Questo ci eviterà di trovare manualmente il percorso, e ci consentirà di trovarlo su qualsiasi computer (ricordo che in ogni computer varia il nome utente e la chiave alfanumerica), con il sistema operativo Windows XP o Windows 2000.

Per Windows 98 (tutte le versioni) non mi ricordo, ma mi sembra che la cartella Identities e relative sottocartelle siano in "C:\Windows\ApplicationData\Identities\Cartella alfanumerica\Microsoft\Outlook". Se comunque usate FileSearch fornendo come percorso iniziale "C:\Windows" anzichè "C:\Documents and Settings" il risultato sarebbe assicurato.

Trovata la cartella che contiene la posta, ne rileviamo il percorso completo assegnandolo ad una variabile, variabile che verrà usata dal metodo CopyFile, con il quale copiamo tutto il contenuto dalla cartella di origine (Outlook Express) a quella di destinazione. Sfruttiamo l'opzione "True" del metodo CopyFile che ci consente di sovrascrivere i file nella cartella di back-up quando ripeteremo i salvataggi, in modo da aggiornare i file già eventualmente copiati.

 

Sub BackupPosta()
Dim FsO, FcA, FiSe
Dim NewCart, Percorso
Set FsO = CreateObject("Scripting.FileSystemObject")
Set FiSe = Application.FileSearch
'assegnazione alla variabile "FiSe" del metodo di ricerca


With FiSe
'con la variabile "FiSe" (usiamo l'istruzione With..End With per eseguire una serie di istruzioni su un singolo oggetto)
.LookIn = "C:\Documents and Settings"
'percorso della cartella iniziale dove eseguire la ricerca
.SearchSubFolders = True                    
'e facciamo cercare anche nelle sottocartelle
.Filename = "*.dbx"          
'impostiamo i file da cercare con estensione .dbx (* vuol dire : tutti i file .dbx)

If .Execute() > 0 Then
'se eseguendo la ricerca trovi il file o i files (quindi Execute sarà 1 o maggiore), allora....

FcA = FsO.GetParentFolderName(.FoundFiles(1)) 
'usiamo il metodo GetParentFolderName che restituisce il percorso fino 'all'ultima cartella contenente i files cercati (quindi ....\Outlook Express).
'La variabile FcA ora è uguale al percorso completo, e se desideriamo, possiamo far scrivere il percorso in una cella del foglio:

'Sheets(1).[M1].Value = FcA


NewCart = "C:\BackupPosta\" 
 'con NewCart indichiamo il percorso della cartella dove faremo copiare i files .dbx

If FsO.FolderExists(NewCart) = True Then  
' quindi usiamo il metodo FolderExists per verificare se la cartella esiste già
GoTo 10    
'se esiste già, saltiamo alle istruzioni dell'indicatore di riga 10:

Else 
 'altrimenti (se non esiste) usiamo il metodo CreateFolder per creare la nuova cartella impostata con NewCart
FsO.CreateFolder (NewCart)
End If
10:
Percorso = FcA & "\*.dbx"
 'è necessario aggiungere la barra (\) finale al percorso ora in FcA , ed il file o i files da copiare 'usando il metodo CopyFile, assegnando il tutto alla variabile "Percorso"


FsO.CopyFile Percorso, NewCart, True 
'ora copiamo i file, sovrascrivendo ev. i files (True)


MsgBox "Back-Up completato" 
'quindi si avvisa dell'avvenuto back-up

Else
'se invece i files .dbx non esistessero nella cartella di origine, si avvisa con questo messaggio:
MsgBox "Files dbx non trovati."
End If                                      '
fine condizione
End With                                 
'fine istruzione With"
Set FiSe = Nothing                 
  'cancelliamo dalla memoria le variabili "FiSe", "FsO", "FcA"
Set FsO = Nothing
Set FcA = Nothing

End Sub

 

Considerazioni.

Non è difficile da capire: una volta impostato il CreateObject  con la variabile FsO, si sfruttano alcuni dei metodi del FileSystemObject per eseguire le nostre operazioni. L'articolo è impostato per eseguire il back-up dei files di posta, ma è evidente che variando il percorso iniziale ed il tipo di file, è possibile eseguire il back-up di qualunque tipo di file.

 

 

Buon lavoro.

prelevato sul sito www.ennius.altervista.org