PDA

Ver la Versión Completa : Comuncarnos con un servidor SMTP


aeff
07-05-2008, 09:21:47
Grandes Saludos para todos!

Tengo un problema que creo que yo solo no lo lograré solucionar, consiste en comunicarme con un servidor SMTP, pero hacerlo manualmente, es decir, hacer una aplicación con un Memo y un Edit (por ejemplo), que al cargar la misma se conecte al servidor SMTP, hasta aqui he logrado hacer algo usando el componente TClienteSocket, el Memo sería para visualizar las respuestas del servidor y el edit para enviarles los comandos al servidor,

todo se me enrreda cuando envio el comando "HELO", que no responde ni hace nada, ni si quiera un mensaje de error que se agregue en el memo, por supuesto en el evento OnRead del ClienteSocket coloco lo siguiente:


Memo1.Lines.Add('S:' + Socket.ReceiveText);


en el Memo aparece una sola linea que es la que me envía el servidor cuando me conecto con el, pero al pulsar enter en el edit que es cuando mando los comandos hacia el mismo no me notifica nada.

lo que emite es:


S:+OK Hello there.


los comandos los conozco de nombre pero nunca lo he usado, solo el "HELO" y no funciona, he leido que al final de cada comando debe ir un "CRLF" lo que sería un "#13#10", pero he probado y no funciona tampoco, al menos a mi,

algunos comandos son:

HELO, para abrir una sesión con el servidor
MAIL FROM, para indicar quien envía el mensaje
RCPT TO, para indicar el destinatario del mensaje
DATA, para indicar el comienzo del mensaje, éste finalizará cuando haya una línea únicamente con un punto.
QUIT, para cerrar la sesión
RSET Aborda la transacción en curso y borra todos los registros.
SEND Inicia una transacción en la cual el mensaje se entrega a una terminal.
SOML El mensaje se entrega a un terminal o a un buzon.
SAML El mensaje se entrega a un terminal y a un buzon.
VRFY Solicita al servidor la verificación del argumento.
EXPN Solicita al servidor la confirmación del argumento.
HELP Permite solicitar información sobre un comando.
NOOP Se emplea para reiniciar los temporizadores.
TURN Solicita al servidor que intercambien los paquetes.


** no se usar ninguno de ellos **

he usado tambien el programa Telnet por si sería un problema de TCLientSocket, pero tampoco da resulatdo,,

**nota: no debo usar los componentes de Delphi que realizan estas acciones, como por ejemplo NMSMTP o alguno de la Indy, debido a que esto es una DLL que estoy creando para que otros programadores la usen mas tarde en otra tarea y por cuestiones de velocidades de red en mi país, que retrasarían el desarrollo de una gran aplicación que se está creando en conjunto y tiene por estas razones que ser del menor tamaño posible para facilitar sus actulizaciones **

¿alguien me da una ayuda en esto?
de antemano, verdaderamente, muchas gracias
aeff!