Inicio > Bases de datos > revolupo > mandar email

mandar email

Experto:
Usuario:
Fecha: 23/11/2009
Valoración: (5,00 sobre 5) Categoría: Bases de datos
23/11/2009
dhyna, usuario preguntando en Bases de datos
Usuario
hola ,
me gustaria saber si es posible el poder mandar emails sin tener ningun "programa" tipo outlook o notes instalado en el PC, los ordenadores estan conectados en red, pero unos cuantos no pueden tener instalados servidores de coorreo y quiero que desde una plicacion VFP mande un email a otros pc que si que tienes outlook
23/11/2009
dhyna, experto respondiendo en Bases de datos
Experto
Lo único que tienes que hacer es abrir un socket en el cliente y seguir los pasos del RFC821 que es donde se especifican los pasos a seguir. Te los explico yo brevemente: En primer lugar, creas un socket y lo abres. Después haces un connect a un servidor de smtp (puerto TCP 25). Una vez conectado tienes que enviar la siguiente secuencia pero ten en cuenta que tras cada envío, el servidor de smtp contesta con un mensaje de confirmación o de error. Para mensajes simples, empieza enviando MAIL FROM: origen@correo.com + crlf Tras la respuesta, envía RCPT TO: destino@correo.com + crlf (este paso lo repites por cada uno de los destinatarios) Tras la confirmación envías DATA + crlf. Tras la respuesta del servidor envías ya el correo electrónico. Por ejemplo: From: Revolupo + crlf + Subject: Envio de correos desde código + crlf + Aquí tienes un ejemplo de envío de correo desde código. Espero que te sirva + crlf + . + crlf (el final del correo siempre es crlf + . + crlf) Tras la confirmación envías un QUIT + crlf y por último desconectas el socket. Sé que así parece complicado pero prueba a hacer un telnet al puerto 25 de un servidor de smtp y sigue estos pasos, verás los mensajes de confirmación y podrás depurar errores. Siento no explicarme mejor. P.D. Recuerda que en el RFC821 viene toda la especificación del protocolo smtp
23/11/2009
dhyna, usuario preguntando en Bases de datos
Usuario
con algo de codigo, ademas te explico, esos pc's no tienen conexion a internet
23/11/2009
dhyna, experto respondiendo en Bases de datos
Experto
En primer lugar, si no tienes conexión a Internet ni acceso a un servidor smtp local a tu red, no te sirve nada de lo que te conté y, realmente, no se me ocurre cómo podrías solucionarlo. Si por el contrario, tienes un servidor de smtp en tu red local, entonces te escribo los pasos en pseudocódigo porque no sé VFP.
s = create(Socket)
s.connect(DIR_IP_SMTP_SVR, puerto_25)
Comprobar que se ha conectado con éxito y si es así
s.send('MAIL FROM: revolupo@revolupo.com' + crlf) //Esto envía especifica la dirección de origen
s.recv(buffer)
si buffer = '250 Ok ....' entonces siguente-paso si no, error
s.send('RCPT TO: dhyna@dhyna.com' + crlf) //Esto especifica la dirección destino. Recuerda que este paso lo puedes repitir tantas veces como destinatarios del correo tengas.
s.recv(buffer)
si buffer = '250 Ok....' entonces siguiente paso si no error
s.send('DATA' + crlf) //Esto especifica que vas a enviar el cuerpo del mensaje
s.recv(buffer)
si buffer = '354 ....' entonces siguiente paso si no error
s.send('From: revolupo <revolupo@revolupo.com>' + crlf)
//aquí no se recibe nada
s.send('Subject: ejemplo' + crlf)
//aquí no se recibe nada
s.send('Resto del correo' + crlf)
//aquí no se recibe nada
s.send(crlf + '.' + crlf)
s.recv(buffer)
si buffer = '250 Ok...' entonces siguiente paso si no error
s.send('QUIT' + crlf)
s.recb(buffer)
si buffer = '221 ....' entonces siguiente paso si no error
s.disconnect
destroy(s)
Te recomiendo que abras el telnet de windows.
Conectes al puerto 25 de algún servidor smtp
Y a continuación escribas las cadenas que he puesto en las líneas s.send('estas cadenas')
Verás los mensajes que te devuelve el servidor smtp. Por supuesto, pon direcciones de correo válidas. Espero haberte ayudado pero un código de ejemplo depende mucho del lenguaje, de cómo trata los sockets, de los eventos, etc. Te recomiendo lo del telnet, a mi me resultó muy útil
23/11/2009
dhyna, usuario preguntando en Bases de datos
Usuario
Excelente. Una fantástica solución.
Enlaces patrocinados