Para enviar correo sólo necesitas usar el control Winsock y conocer el protocolo SMTP. Este está descrito en la RFC821 que puedes localizar en
http://www.ietf.org.
Básicamente, has de enviar las órdenes indicadas en a RFC821 por el puerto 25 y comprobar los retornos en el evento DataArrival del control Winsock. A grandes rasgos es algo así:
' Conectar al servidor smtp
Winsock1.RemotePort = 25
Winsock1.RemoteHost = "smtp.micorreo.es" ' El que tengas
Winsock1. Connect
El protocolo SMTP indica que la conversación es, más o menos así:
HELÓ
Mail from
RCPT TO
DATA
QUIT
La secuencia, simplificada y usando el winsock es:
Winsock1. senddata "HELO prueba" & vbcrlf
' Esperar hasta que se recibe una línea (evento dataarrival del winsock) que comience por 250
winsock1.senddata "MAIL FROM:<
[email protected]>" & vbcrlf
' Esperar hasta recibir el 250 o un tiempo estipulado
winsock1.senddata "RCPT TO:<
[email protected]>" & vbcrlf
' Esperar nuevamente el 250 o el tiempo estipulado
winsock1.senddata "DATA" & vbcrlf
' Aquí hay que esperar una respuesta 354 o el tiempo estipulado
' Una vez recibido el 354 se envía el texto del correo con sucesivos
winsock1.senddata "texto del correo" & vbcrlf
' Para indicar que se ha terminado de enviar el texto del correo se envia una línea que sólo contenga un punto
winsock1.senddata "." & vbcrlf
' Si todo va bien se recibe una respuesta 250
' Y finalmente se termina la sesión con el servidor con:
winsock1.senddata "QUIT" & vbcrlf
' De nuevo se ha de recibir un 250
En cualquiera de los casos si pasa el tiempo estipulado (que has de decidir tú) se ha de cancelar el proceso y cerrar el winsock para evitar dejar recursos en uso.