none
descargar adjunto de correo electronico en VB6 RRS feed

  • Pregunta

  • Hola

    Utilizo VB6 SP6, Win XP pro2002 SP3

    Estoy intentando descargar un fichero adjunto de mas de 8 caracteres, pero no puedo, el codigo que empleo es el siguiente:

           MAPISession1.Action = 1 'session_signon
           MAPIMessages1.SessionID = MAPISession1.SessionID
           MAPIMessages1.FetchUnreadOnly = True
           MAPIMessages1.Action = 1 'message_fetch
           Dim i As Integer
           For i = 0 To MAPIMessages1.AttachmentCount - 1
               MAPIMessages1.AttachmentIndex = i
               Dim intLenFileName As Integer
               Dim intStrPos As Integer
               Dim strNewFileName
               intLenFileName = Len(MAPIMessages1.AttachmentPathName)
               For intStrPos = intLenFileName To 1 Step -1
                   If InStr(1, _
                            Right$(MAPIMessages1.AttachmentPathName, _
                                   intLenFileName - (intStrPos - 1)), _
                            "\", 1) Then
                       strNewFileName = _
                          Right$(MAPIMessages1.AttachmentPathName, _
                                 intLenFileName - intStrPos)
                       Exit For
                   End If
               Next
               FileCopy MAPIMessages1.AttachmentPathName, _
                        "c:\" & strNewFileName
           Next

    Pero solo me guarda 8 caracteres y 3 de la extension.

    Hay alguna forma de poder guardar todos los caracteres del nombre del fichero.

    Gracias

    Un saludo

    Jesus

    lunes, 12 de julio de 2010 7:34

Todas las respuestas

  •               For Each ObjAttach In .Attachments
                    With ObjAttach
                      Archivo =  .Name
                      On Error Resume Next
                      .WriteToFile Archivo
                      ControlArchivo = Dir(Archivo, vbArchive)
                    End With
                  Next
    lunes, 12 de julio de 2010 19:10
  • Hola.

    Siento decirte que no se como o donde poner el codigo que me envias. Si pudieras explicarmelo.

    Gracias

    martes, 13 de julio de 2010 5:59
  • Reemplazaria el codigo que mandaste
    martes, 13 de julio de 2010 19:40
  • Hola de nuevo.

    En el codigo que me envias, me falta un With, ya que me pone "For Each ObjAttach In .Attachments ". He probado con un Dim Correos as Object, pero no me funciona, me dice: "Variable de tipo Object o la variable del bloque with no esta establecida.", y no se como ponerlo.

    Gracias

    Un saludo

    miércoles, 14 de julio de 2010 5:58
  • el .atachments es del objeto message.

    miércoles, 14 de julio de 2010 18:53
  • Hola de nuevo y muchas gracias por el interes que estas poniendo, pero o me estoy liando o no me entero de nada.

    Creo entender que lo debo poner asi:

           MAPISession1.Action = 1 'session_signon
           MAPIMessages1.SessionID = MAPISession1.SessionID
           MAPIMessages1.FetchUnreadOnly = True
           MAPIMessages1.Action = 1 'message_fetch
           Dim i As Integer
           Dim objattach As Message
           Set objattach = New Message
           For Each objattach In .Attachments (1)
                    With objattach
                      Archivo = .Name
                      On Error Resume Next
                      .WriteToFile Archivo
                      ControlArchivO = Dir(Archivo, vbArchive)
                    End With
                  Next
    pero me da errores. Si pudieras poner el codigo compelto te estaria agradecido. Un saludo

    (1) me dice, "Referencia no valida o sin calificar"

    jueves, 15 de julio de 2010 7:02
  •  MAPISession1.Action = 1 'session_signon
           MAPIMessages1.SessionID = MAPISession1.SessionID
           MAPIMessages1.FetchUnreadOnly = True
           MAPIMessages1.Action = 1 'message_fetch
           Dim i As Integer

    DIM ObjMessage as mapi.message

    WITH OBJMESSAGE (EL MENSAJE OBTENIDO)
           Dim objattach As MAPI.ATTACHMENTS
                  For Each objattach In .Attachments (1)
                    With objattach
                      Archivo = .Name
                      On Error Resume Next
                      .WriteToFile Archivo
                      ControlArchivO = Dir(Archivo, vbArchive)
                    End With
                  Next
    pero me da errores. Si pudieras poner el codigo compelto te estaria agradecido. Un saludo

    (1) me dice, "Referencia no valida o sin calificar"

    jueves, 15 de julio de 2010 19:35