Rigenerare la lista di autocompletamento di Outlook

autocompletamento Avete perso la lista di autocompletamento di Outlook?
Ricreatela!

Capita di cambiare computer e di non ritrovarsi più la lista di completamento automatico degli indirizzi di Outlook, quindi quando si inizia a digitare un indirizzo non appare nulla se non i contatti presenti nella rubrica.

Se avete a disposizione il vecchio PC potete (a seconda delle versioni di Outlook):

  • usare l’utility di Microsoft MFCMAPI (http://mfcmapi.codeplex.com) per esportare/reimportare i dati;
  • copiare il file nk2 presente in %APPDATA%\Microsoft\Outlook nel vecchio PC ed incollarlo nel nuovo, per poi reimportarlo col comando outlook /importnk2.

Se però non fosse più disponibile il PC allora l’unica alternativa sarebbe ricreare manualmente la lista. Ma come fare?

Inserendo un finto messaggio di posta che salvi i suddetti contatti.
Per far questo è però necessario l’intervento di PowerShell per estrarre dai messaggi inviati da Outlook gli indirizzi dei nostri destinatari. Possiamo, con poche righe di script, leggere tutti i destinatari a cui abbiamo inviato un messaggio negli ultimi X giorni e salvarlo in un file di testo per poterlo poi verificare con Excel e passarlo ad Outlook.

Ecco i passaggi:

Passaggio 1 – Estrarre da Outlook i destinatari

Per estrarre la lista dei destinatari a cui abbiamo inviato messaggi nelgi ultimi 365 giorni basterà incollare il seguente script in PowerShell. Qualora si volesse impostare un intervallo di giorni più ampio basterà cambiare il valore (Get-Date).AddDays(-365) con il numero di giorni desiderato.

Add-Type -Assembly "Microsoft.Office.Interop.Outlook"
$Outlook = New-Object -ComObject Outlook.Application
$namespace = $Outlook.GetNameSpace("MAPI")
$messaggi = $namespace.GetDefaultFolder([Microsoft.Office.Interop.Outlook.OlDefaultFolders]::olFolderSentMail)
$messaggi.Items | Where-Object {$_.SentOn -gt (Get-Date).AddDays(-365)}|where {$_.to -like "*@*"}|Select-Object to -unique |sort-object -property To | Export-csv "$env:temp\indirizzi.txt" -NoTypeInformation -noclobber


Passaggio 2 – Formattare i destinatari con Excel

Aprire con Microsoft Excel il file %TEMP%\indirizzi.txt appena creato e cercare in esso tutti gli indirizzi che contengono voci e caratteri “anomali”; consigliamo di cercare i caratteri “(“ e “;” perchè normalmente fanno riferimento a righe errate. Si otterrà un file simile a questo:
indirizzitxt

Passaggio 3 – Creare nuovo messaggio in Outlook
Una volta ottenuta la lista Excel dei destinatari bisognerà copiare tutte le celle contenenti gli indirizzi ed incollarle nel campo A: di un nuovo messaggio di posta elettronica. Se la rimozione delle righe errate sarà stata fatta in modo corretto ci si ritroverà con un messaggio formattato in questo modo:

newmessage

Passaggio 4 – Impostare il recapito ritardato

Ora bisognerà impostare un recapito ritardato al messaggio cosìcchè lo si possa eliminare prima che venga effettivamente spedito.  Basterà aprire le opzioni del messaggio e selezionare una data molto lontana in questo modo:

recapitoritardato

A questo punto si potrà spedire il messaggio che sarà recapitato solo nel 2050. In questa fase potreste riscontrare qualche errore sui destinatari. In questo caso bisognerà correggerlo nel file Excel (quindi ritornare al passaggio n.2)

Passaggio 5 – Eliminare messaggio in Outlook

In Posta in uscita avremo il falso messaggio che potrà agevolmente essere eliminato lasciando la lista di autocomposizione finalmente correttamente compilata.

Lascia un commento qui