FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
#1
|
|||
|
|||
Ayuda con SMTP
Hola a todos, estoy realizando un programa para enviar correo electronico mediante comandos TCP. Me conecto al servidor y envio el correo, de hecho me llega a la cuenta, pero me llega sin remitente, sin asunto y sin texto dentro.
TCPClient.Connect; continuar:=false; while continuar=false do Application.ProcessMessages; TCPClient.WriteLn('HELO '+ Form2.LabeledEdit3.Text); Memo1.Lines.Add('--> '+'HELO '+ Form2.LabeledEdit3.Text); Memo1.Lines.Add(''); continuar:=false; while continuar=false do Application.ProcessMessages; TCPClient.WriteLn('MAIL FROM:<'+ Form2.LabeledEdit1.Text+'>'); Memo1.Lines.Add('--> '+'MAIL FROM:<'+ Form2.LabeledEdit1.Text+'>'); Memo1.Lines.Add(''); continuar:=false; while continuar=false do Application.ProcessMessages; TCPClient.WriteLn('RCPT TO:<'+ Form2.LabeledEdit2.Text+'>'); Memo1.Lines.Add('--> '+'RCPT TO:<'+ Form2.LabeledEdit2.Text+'>'); Memo1.Lines.Add(''); continuar:=false; while continuar=false do Application.ProcessMessages; TCPClient.WriteLn('DATA'); Tras esto introduzco el texto, termino con el '.' y luego QUIT. Se os ocurre que le puede pasar? Muchas gracias |
#2
|
||||
|
||||
Hola SonGoten.
Por opinar; ¿has pensado en capturar las respuestas del servidor?, a lo mejor te aclara lo que está pasando.
__________________
Francisco J. Flores |
#3
|
||||
|
||||
Como bien opina flores... el envío de un mensaje no es un monólogo. El servidor está también enviando mensajes al cliente.
Por ejemplo, despues del envio del comando DATA debieras esperar recibir un mensaje 354 para iniciar el envío de los datos. Igual habrán varios 250's entre el [b]MAIL FROM, RCPT TO, etc. Con respecto del subject, habrá que ver que estas enviando dentro de DATA para ver porque no lo está tomando en cuenta. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
|||
|
|||
--------------------------------------------------------------------------------------------------------------------
Conectando con: smtp.ono.es Port: 25 Conexión establecida 220 mta02.onolab.com ESMTP Service (7.1.016.11) ready --> HELO pc03.IT1.upct.es 250 mta02.onolab.com --> MAIL FROM:<puesto03@ono.com> 250 MAIL FROM:<puesto03@ono.com> OK --> RCPT TO:<jrosell@ono.com> 250 RCPT TO:<jrosell@ono.com> OK --> DATA 354 Please start mail input. --> Hola --> Club Delphi r00lz!!! --> Bye! --> . --> SEND FROM:<puesto03@ono.com> --> QUIT Desconexión de: smtp.ono.es Port: 25 Si os fijais me responde con 250, pero al recibirlo no me sale. Se supoine que hay q terminar todas los comandos con char(10) o char(13)? Es que creo q el problema tiene q ver con eso, con el retorno de carro al final del comando. Pero lo pongo y no lo reconoce. Muchas gracias! |
#5
|
||||
|
||||
Curiosidades
Hola.
Para repetir tu ejemplo (tambien tengo ONO) he seguido la guia por telnet que hay en: http://www.psicobyte.com/ppersonal/o...mtptelnet.html y lo he mandado de mi cuenta a mi cuenta y tambien me envía el msg y llega sin asto, ni remitente ni cuerpo. El caso es que si veo el msg en http://www.onobox.com , visualizo el msg y le doy a mostrar encabezado me sale todo, incluso el texto en el encabezado. Yo ahora mismo estoy desde fuera de la red de ONO (¿tu lo has echo desde dentro o desde fuera?) y creo que es por eso, que filtra las IP's o algo así he escuchado. Hasta el Lunes o el Martes no podré probar desde ONO, ya iré contando....
__________________
Francisco J. Flores |
#6
|
|||
|
|||
Si, estoy desde dentro de ONO y me pasa lo mismo, si miro el codigo fuente del mensaje viene todo. Y la cuestión es que en el tutorial que has puesto pone lo mismo, no dice nada de los retornos de carro ni nada. No se que hacer .
Muchas gracias! |
#7
|
||||
|
||||
¿ has probado con otro servidor?
Has probado con una cuenta de otro dominio, me refiero a una de Terra, Tiscali, Wanadoo...?
No sé pero igual al problema viene por el servidor smtp de correo. Lo he intentado con terra pero me pide autentificación de usuario a la hora de intentar transmitir un msg por telnet. El caso que yo he estado haciendo pruebas con los componentes Indy enviando y recibiendo msg's desde mi cuenta de ONO y no tuve problemas, creo que en todo esto falta algo.
__________________
Francisco J. Flores |
#8
|
||||
|
||||
En que parte de tu DATA estas enviando el subject??
Porque el servidor no lo inventará (perdon por el sarcasmo). Te copio parte de un Example del rfc821: Cita:
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#9
|
||||
|
||||
En efecto, el problema estaba en que no diferenciaba la cabecera del cuerpo o texto del mensaje, para diferenciarlo por telnet es una linea en blanco. Por eso en onobox veía el texto dentro de la cabecera.
__________________
Francisco J. Flores |
#10
|
|||
|
|||
El Retorno de Carro
En cuanto a lo que tu preguntabas de usar el retorno de carro (chr(13)):
En Indy hay 2 tipos de comandos de escritura: Write y Writeln. La diferencia fundamental entre ambas es que el writeln introduce un retorno de carro al final del texto que has introducido (para quitarte de trabajo) y el write no. Ejemplo:
Saludidos |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|