Fabio Di Paola

LotusScript: check userID nel mail file

27 Aprile 2022 Domino Sviluppo 0

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.

E qui sorge il mio dubbio: provando poi ad utilizzare il file ID dal client Notes ho avuto un comportamento che non mi aspettavo.

Facendo uno Switch ID su quel file il client semplicemente non faceva nulla, senza darmi una segnalazione di errore o altro. Lo ignorava e basta.

Allo stesso modo se provavo dal client di amministrazione a selezionare ID properties su quel file non ottenevo nulla, nè errori nè altre segnalazioni.

Presumo che caricando il file ID in in iNotes venga effettuata qualche operazione che ne rende impossibile l’utilizzo dal client ma anche qui non ho trovato documentazione e non ho fatto verifiche ulteriori. C’è qualcuno che ne sa di più ?