Debes utilizar el control Winsock (Microsoft Winsock Control 6.0). En tu programa haz que conecte directamente con el servidor SMTP para no dar ningun paso intermedio.
Cuando envias un comando al servidor SMTP hay que esperar una respuesta de éste, que se compone de un código y una descripción.
Hay códigos de error y codigos de operación aceptadas. Por lo general los código que empiezan por 5 (son códigos de 3 digitos) son los de error, los codigos que empiezan por 2 son códigos de exito, aunque hay otros códigos.
Para el correo electrónico se utilizan los siguientes comandos:
"Hello" (identifica respecto al SMTP)
"Mail from" (el que envia el correo)
"Rctp to" (el que recibe el correo)
"Rset" (aborta el mensaje actual)
"Data" (Indica los datos que se envian)
"Quit" (termina la conexión con el servidor)
'Añadir al formulario el control winsock
'Abrir comunicación con el servidor
Public Sub abrirlinea( )
winsock1.sckTCPProtocol
winsock1.RemotePort = 25
winsock1.RemoteHost = "smtp.direccion.es"
winsock1.Connect
End Sub
A la espera de la respuesta, si ha ocurrido un error dará el evento winsock1_Error.
Si ha tenido exito se desencadena el evento winsock1_Connect y recibimos el codigo 220.
Una vez realizada la conexión se envian los mensajes:
winsock1.SendData ("Mail from:
[email protected]" & vbCrLf)
El evento winsock1_SendComplete indica que los datos se han enviado correctamente. Debemos esperar la respuesta del servidor en el evento winsock1_DataArrival. Si recibimos el codigo 250 sabremos que la petición del comando anterior ha sido acepta