Ho avuto bisogno di verificare una serie di file di posta Domino per vedere se lo userID era caricato all’interno del file di posta stesso , tipicamente per l’uso con un client browser come iNotes .
Non ho trovato documentazione su come eseguire l’operazione e quindi ho dovuto fare qualche prova ma alla fine sono riuscito ad effettuare l’operazione (anche se mi rimane un dubbio che riporto alla fine).
L’Id ovviamente c’è , dovevo solo capire dove cercarlo e la prima idea è stata di guardare nel Calendar profile del file di posta , ci sono parecchie informazioni al suo interno e volevo vedere se trovavo anche questa.
Non avendolo trovato in quel Profile ho deciso di allargare la ricerca e quindi sono andato a vedere tutti i profili presenti ed ho scoperto essercene più di 40 !
A questo punto ho cominciato a ciclarli tutti per verificare in ognuno se fosse presente un file allegato e quando l’ho trovato si chiamava “UserID” . Inoltre era l’unico file allegato in un documento di profilo e quindi la risposta diveniva semplice.
Questo è il codice LotusScript che ho usato, magari può servire a qualcuno:
Set mailDb = New NotesDatabase(server, fileposta) Set ndc = mailDb.GetProfileDocCollection() If (ndc Is Nothing) Or (0=ndc.Count) Then Print "Nessun profilo trovato" Exit Sub End If Set pdoc = ndc.GetFirstDocument Do Until pdoc Is Nothing flag = pdoc.HasEmbedded If flag = True Then Set item = pdoc.getFirstItem("$FILE") valueArray = Item.Values Set NotesEmbeddedObject = pdoc.GetAttachment( valueArray(0) ) Call notesEmbeddedObject.ExtractFile( "d:\test\" + valueArray(0) + ".id" ) End If Set pdoc = ndc.GetNextDocument(pdoc) Loop
Come potete vedere mi sono creato la collection dei profili con GetProfileDocCollection() , poi ho cominciato a ciclarla per verificare la proprietà .HasEmbedded , una volta trovato ho preso l’item che conteneva il file e l’ho scaricato.
0 commenti