Está en la página 1de 2

1

Envio de email con vb


ESTO ES CON VB 6
Envio de e-mail desde VB:
1.- Adjuntar al proyecto los controles MAPI
(ya sabes: Proyecto/Componentes y sealar 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 ms:
MAPISession1.SignOf
IMPORTANTE: Tu programa de mail debe ser cliente MAPI predeterminado:
en Outlook Express: Herramientas,Opciones,General y marcar la opcion correspondiente.
Salvo error mio al transcribirlo, esto funciona. Suerte!
Mi agradecimiento a los colegas de las news que me orientaron en este tema cuando no
tena ni idea.
Recepcin de e-mail desde VB:
1.- Adjuntar al proyecto los controles MAPI
(ya sabes: Proyecto/Componentes y sealar 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

2
' 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.SignOf
' 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 opcion correspondiente.
Salvo error mio al transcribirlo, esto funciona. Suerte!
Mi agradecimiento a los colegas de las news que me orientaron en este tema cuando no
tena ni idea.
Creo que con esto y muy poco por tu parte, tienes resuelto el tema de recibir mail.
Se agradecen comentarios (incluso criticas) que ayuden a mejorarlo. Tambien me encantara
saber
si mi esfuerzo te ha sido de utilidad, no me gustara estar haciendo esto para nada. Gracias.
para evitar que te salga ese mensaje de confirmacin al momento que envias los correos
electrnicos, debes ingresar el Outlook Express y en Herramientas/Opciones/Seguridad,
quitar el check de "Avisame cuando otras aplicaciones intenten enviar un correo electrnico
con mi nombre", deshabilitando esa opcin no aparecer mas la ventana; ahora si desean
enviar un mensaje a varias personas puedes tener las direcciones electrnicas de todas ellas
en una BD he ir accesando a ellas mediante un FOR.

También podría gustarte