Resumen Enviar un correo con un archivo adjunto

    Hola Alejandro.
    Llevo peleandome cerca de un mes con un programa que maneja
correos y despues de leerme y releerme mil veces el archivo de ayudad de
VB he conseguido gestionar el correo como yo queria. Antes de nada tengo
que decirte que puedes utilizar varias opciones, que yo sepa, puedes
utilizar MAPI o Winsock o automatizacion, por ejemplo con Outlook.
Yo me decidi por utilizar MAPI y es la opcion en la cual he profundizado
mas.
    Para adjuntar un archivo a un e-mail puedes utilizar el control
MAPI, para ello debes agregar una referencia: Microsoft MAPI Control.
    Cuando la has agregrado debes añadir dos controles, MAPI-Session
(que controla la conexion al servidor de correos que tengas por defecto,
aunque esto, creo, lo puedes modificar) y MAPI-Messages que es el que
controla directamente la gestion de los mensajes.
Con estos dos controles puedes realizar todas las tareas que haces
normalmente desde el servidor de correos, leer mensajes y escribirlos.
La ayuda que viene en VB es un poco escasa y sin ningun tipo de ejemplo
on-line, solo existe un proyecto en el cd de instalacion de VB en el
directorio Samples que se llama VB-Mail y te puede orientar un poco.
    Bueno despues de este rollo te envio un procedimiento que te
permite insertar archivos adjunto a un e-mail, previamente has tenido
que iniciar una sesion de correo.

Sub EnviarAdjunto(MAPIMess as MAPIMessages)
    Dim nMsg As Integer
    MAPIMess.MsgIndex = -1    ' Controla el buffer de redaccion, si es
distinto de -1 significa que estas leyendo el mensaje.
    For nMsg = 0 To 1    ' Utilizo un bucle para añadir varios mensajes
        MAPIMess.RecipIndex = 0    ' El mensaje actual
        MAPIMess.AddressResolveUI = False    ' Como le doy la
direccion correcta no hace falta que salga el form. de verificacion de
usuario.
        MAPIMess.RecipType = mapToList    ' Indicas que es un mensaje
directamente para el destinatario
        MAPIMess.RecipAddress = "" ' Es la direccion
donde va destinado el correo.
        MAPIMess.RecipDisplayName = "Gallego Parra, Enrique" ' El nombre
que se visualiza en el servidor de correo
        MAPIMess.MsgSubject = "MENSAJE DE PRUEBA" ' El titulo o asunto
del mensaje
        MAPIMess.MsgNoteText = "Fecha de Envio: " & Now & vbCrLf & " "
' El cuerpo del mensaje, es decir, el texto
        MAPIMess.AttachmentIndex = MAPIMess.AttachmentCount     '
AttachmentoCount es el numero total de mensajes adjunto que van en el
e-mail y AttachmentIndex es el numero de mensaje actual que estas
añadiendo.
        MAPIMess.AttachmentPosition = 35 ' la posicion que ocupa el
adjunto dentro del cuerpo del mensaje
        MAPIMess.AttachmentName = "Ordsum.txt" ' El nombre del archivo,
si no lo pones no pasa nada, pero si tienes que poner attachmentPathName
        MAPIMess.AttachmentPathName = "C:\SOGEDIS\Ordsum.txt"
        MAPIMess.AttachmentType = mapData ' Añade un archivo tipo texto,
pero tambien puede ser OLE, es decir, Excel ...
        MAPIMess.Send False    ' Envia el mensaje directamente, sin
mostrarte el servidor de correo
        MAPIMess.Delete 2 ' Borra el adjunto
        MAPIMess.Delete 1 ' Borra el mensaje, para poder crear otro
nuevo.
    Next nMsg
End Sub

    Ahh, por cierto, yo estoy utilizando Exchange, no tengo ni idea
de como funcionara con otros programas de e-mail.
Espero haberte sido de utilidad, si tienes alguna duda o necesitas mas
ayuda mi direccion de correo es:
    enrique.gallego@madrid.cepsa.es
    Un Saludo, QuiQue
> ----------
> Desde:     abelkin@bas.com.ar[SMTP:abelkin@bas.com.ar] en nombre de
> Alejandro Belkin[SMTP:abelkin@bas.com.ar]
> Enviado el:     lunes 24 de agosto de 1998 23:10
> Para:     'Lista de Visual Basic'
> Asunto:     ENVIAR E-MAIL CON ARCHIVO ADJUNTO
>
> Necesito enviar un e-mail que contenga un archivo adjunto, ¿cómo tengo
> que hacer?. ¿Necesito algún control de terceros?
>
> Alejandro Belkin
> abelkin@bas.com.ar
>



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com