Newsgroup: it.comp.os.win.win2000
Titolo: Messaggi duplicati in Outlook 2000

Salve,
a causa di errori di sincronizzazione e successivi ripristini di backup
(.pst) mi ritrovo "valanghe" di e-mail duplicate (ma anche triplicate o
più - sia su cartelle locali che su server IMAP !!!).
Cancellarle manualmente richiederebbe troppo tempo (ora sono ~10000) quindi
mi chiedevo se esistesse un tool automatico che faccia un rapido esame degli
header per trovare messaggi con soggetto, mittente, dimensioni e data
identiche per poi cancellarle.
In effetti ho trovato alcuni di questi tool su Internet ma non funzionano
bene, ci sono altre soluzioni praticabili ?
Mi è venuto in mente di scrivere una macro ma non saprei dove iniziare con
Outlook 2000 (non rispondetemi ALT + F11...
Grazie per l'attenzione, saluti.
Trippa

 iniziare con Outlook 2000 (non rispondetemi ALT + F11...
Prova a creare una cartella TEMP in posta in arrivo, in VBA aggiungi un
form, metti un command button ed associa al click questo codice
====================Copia da Qui=============
Dim objDestinationFolder As Outlook.MAPIFolder
Dim objNameSpace As Outlook.NameSpace
Dim objInboxFolder As Outlook.MAPIFolder
Set objNameSpace = Application.Session
Set objInboxFolder = objNameSpace.GetDefaultFolder(olFolderInbox)
Set objInboxItems = objInboxFolder.Items
Set objDestinationFolder = objInboxFolder.Folders("Temp")
For Each myItem In objInboxItems
Current =myItem.Subject & myItem.SentOn
If InStr(1, existing, Current) = 0 Then
 existing = existing & myItem.Subject & myItem.SentOn
Else
  myItem.Move objDestinationFolder
End If
Next
Set objInboxItems = Nothing
==========================================
Questo dovrebbe provvedere a spostare nella cartella TEMP tutti i messaggi
già presenti con stesso oggetto e data.
Ciao!
-- 
_______________________________
        Microsoft® Technical Advice
         news://
news.microsoft.com
http://support.microsoft.com/newsgroups

 Dim objNameSpace As Outlook.NameSpace
Purtroppo non funziona correttamente.
Ho provato con pochi messaggi e va ma su cartelle con 500 messaggi si pianta
dicendo:
"Errore di run-time 438. Proprietà o metodo non supoortato dall'oggetto".
Credo che dipenda dalla riga Current = myItem.Subject & myItem.SentOn che
quando si blocca vale "Implementazione carte - DWH28/11/2002 14.48.22" che è
ovviamente il soggetto di una e-mail + e la data di invio; ho provato a
rinominarla ma si inceppa allo stesso modo su unh altro messaggio.
Che si fa ?

 e la data di invio
Ti posso dare un input, ma bisognerebbe verificare il tuo ambiente per
capire esattamente dove risiede il problema.
Quando il codice va in errore, si blocca ed evidenzia l'istruzione che lo
genera. Se si ferma sulla riga da te indicata, il valore "current" non ha
ancora acquisito quello nuovo, che dovrebbe venir restituito una volta
eseguita l'istruzione, magari perchè l'oggetto "myItem" considerato in quel
momento non è un messaggio di posta e quindi non supporta le proprietà
richiamate nell'istruzione stessa.
Prova a verificare il valore di myItem quando viene generato l'errore.
Eventualmente prova ad aggiungere all'inizio del codice un "on error goto
next_item" e l'etichetta "next_item:" (nota i due punti) tra "end if" e
"next".
...
Set objInboxItems = objInboxFolder.Items
Set objDestinationFolder = objInboxFolder.Folders("Temp")
on error goto next_item
...
End If
next_item:
Next
