Extracción de ficheros anexos a un mensaje

Asunto
------
Desde Visual Basic abro una sesión de Lotus Notes y una base de datos de correo. Me pongo a recorrer todos los mensajes recibidos en cierta vista:
Set doc = vista.GetFirstDocument
While Not doc Is Nothing
'...
Set doc = vista.GetNextDocument(doc)
Wend
Y para cada mensaje quiero sacar los archivos que vengan anexos (adjuntos, attachs, embebidos... Como queráis llamarlos). Para ello estoy intentando usar un bucle que recorra las propiedades que trae el documento (=mensaje)
For Each rtitem1 In doc.Items
Y si detecta que se trata de un fichero --> ordeno extraerlo.
Mi problema es que
------------------
1/ si el mensaje fue enviado originalmente desde Lotus Notes, puedo preguntar por los ítems de nombre
"$FILE" y también "Body.EmbeddedObjects"
PERO
2/ si el mensaje fue enviado desde Netscape, no encuentro en qué propiedad (o ítem, o como se llame) vienen los ficheros anexos.
Gracias mil por vuestra atención (y si ya respondieseis sería la pera limonera).
1

1 respuesta

Respuesta
1
Debes recorrer el doc y buscar por 3 tipos diferentes de objetos embebidos:
Attachments, object, objectlink
Set rtitem2 = doc2.GetFirstItem( "Body" )
If rtitem2.Type = RICHTEXT Then
If Isarray( rtitem2.EmbeddedObjects ) Then
Forall objs In rtitem2.EmbeddedObjects
Select Case objs.Type
Case EMBED_ATTACHMENT
Call rtitem.AddNewLine( 1, False )
Call rtitem.AppendText( "[File Attachment: " & objs.Source & "]" )
Case EMBED_OBJECT
Call rtitem.AddNewLine( 1, False )
Call rtitem.AppendText( "[Embedded Object: " & objs.Source & "]" )
Case EMBED_OBJECTLINK
Call rtitem.AddNewLine( 1, False )
Call rtitem.AppendText( "[Object Link: " & objs.Source & "]" )
End Select
End Forall
End If
End If
Muchas gracias, TíoOblongo (más largo que ancho): tuve que hacer algún pequeño ajuste ("Forall" no funciona en VB, he debido usar "For each... in") pero me ha sido realmente muy útil.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas