Visual Basic - Adjuntar varios archivos con MAPI

Life is soft - evento anual de software empresarial
 
Vista:

Adjuntar varios archivos con MAPI

Publicado por Nicolás (164 intervenciones) el 11/11/2003 16:24:47
Saludos:
Cómo adjunto varios archivos en un mail hecho con MAPI?
La cantidad de archivos adjuntados varía, tendría que usar un While.
Si no fuí lo suficientemente claro, háganmelo saber.
Desde ya, muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Adjuntar varios archivos con MAPI

Publicado por Leo (1 intervención) el 24/05/2012 22:14:30
Envío de e-mail desde VB:
1.- Adjuntar al proyecto los controles MAPI
(Proyecto/Componentes y señalar Microsoft MAPI controls)
2.- En tu formulario, coloca los controles MAPISession y MAPIMessages.
3.- Para enviar el mail:
MAPISession1.UserName = "nombre del remitente"
MAPISession1.NewSession = True
MAPISession1.DownLoadMail = True ' o false si no deseas recibir
MAPISession1.SignOn
MAPIMessages1.SessionID = MAPISession1.SessionID

MAPIMessages1.MsgIndex = -1 ' nuevo mensaje
MAPIMessages1.RecipDisplayName = "nombre del destinatario"

MAPIMessages1.ResolveName ' esto comprueba que el destinatario exista en las direcciones
MAPIMessages1.MsgSubject = "texto del asunto"
MAPIMessages1.MsgNoteText = "texto del mensaje"

' si deseas anexar algun archivo al mail:
MAPIMessages1.AttachmentIndex = 0 ' numero del anexo, 0,1,2,3....
MAPIMessages1.AttachmentName = "nombre_del_archivo_a_anexar"
MAPIMessages1.AttachmentPathName = "path_completo_del archivo_a_enviar"
MAPIMessages1.AttachmentPosition = 0 ' numero del anexo, 0,1,2,3...
MAPIMessages1.AttachmentType = 0 ' archivo de datos
' (puedes anexar varios archivos, incrementando el numero 0,1,2,3....)
' Y por fin, enviarlo:
MAPIMessages1.Send

' Cuando ya no tengas que enviar ningun mail más:
MAPISession1.SignOff
IMPORTANTE: Tu programa de mail debe ser cliente MAPI predeterminado:
En Outlook Express: Herramientas, Opciones, General y marcar la opción correspondiente.

Recepción de e-mail desde VB:

1.- Adjuntar al proyecto los controles MAPI
(Proyecto/Componentes y señalar Microsoft MAPI controls)
2.- En tu formulario, coloca los controles MAPISession y MAPIMessages
3.- Para recibir el mail:
Dim nCanMsg As Integer
Dim cNomFic As String
Dim nX As Integer
Dim nY As Integer
MAPISession1.UserName = "nombre_del _destinatario"
MAPISession1.NewSession = True
MAPISession1.DownLoadMail = True
MAPISession1.SignOn

MAPIMessages1.SessionID = MAPISession1.SessionID
MAPIMessages1.FetchUnreadOnly = True ' Solo los no leidos
MAPIMessages1.FetchSorted = True ' ordenados segun llegada
MAPIMessages1.Fetch ' obtiene el conjunto de mensajes

nCanMsg = MAPIMessages1.MsgCount - 1
For nX = 0 To nCanMsg
MAPIMessages1.MsgIndex = nX
' Filtrado de los mensajes para seleccionar los deseados segun el asunto
If MAPIMessages1.MsgSubject = "asunto_deseado" Then
' Si te interesa el texto del mensaje, está en MAPIMessages1.MsgNoteText
' Por cada archivo anexado al mensaje, extraerlo y copiarlo donde queramos
For nY = 0 To MAPIMessages1.AttachmentCount - 1
MAPIMessages1.AttachmentIndex = nY
cNomFic = ExtraerNombreArchivo(MAPIMessages1.AttachmentName)
FileCopy MAPIMessages1.AttachmentPathName, "path_deseado" + "\" +cNomFic
Next
' borrado del mensaje (si queremos hacerlo)
MAPIMessages1.Delete (mapMessageDelete)
End If
Next
' Cerrar las sesion
MAPISession1.SignOff

' Esta funcion la necesitas para extraer el nombre del archivo:

Private Function ExtraerNombreArchivo(cArchivo As String) As String
' extrae el nombre de un archivo de una cadena con path completo
Dim nX As Integer
ExtraerNombreArchivo = ""
For nX = Len(cArchivo) To 1 Step -1
If Not Mid(cArchivo, nX, 1) = "\" Then
ExtraerNombreArchivo = Mid(cArchivo, nX, 1) + ExtraerNombreArchivo
Else
exit for 'salir del bucle, ya esta.
End If
Next
End Function

IMPORTANTE: Tu programa de mail debe ser cliente MAPI predeterminado:
En Outlook Express: Herramientas, Opciones, General y marcar la opción correspondiente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar