PDA

Ver la Versión Completa : Problema al enviar correo por SMTP


newtron
21-09-2007, 13:07:20
Hola, estoy enviando correos con Delphi 4 y el componente SMTP. El problema es que si el correo de destino pertenece al host lo envia sin problemas pero si es de un host distinto me da error de correo inválido.

He estado echando un vistazo a los mensajes del foro pero no he encontrado nada que me solucione el problema.

Gracias por anticipado

Mick
21-09-2007, 13:24:40
Practicamente todos los servidores de correo obligan a autentificarse para poder enviar correos, sino el problema del spam seria 1000 veces mayor.

Tienes que consultar con el administrador del servidor de correo, que tipo de autentificacion utiliza el servidor, y usar un componente de smtp que te permita autentificarte por el metodo que utilice el servidor de correo.

Si el metodo es un pop before smtp, el componente de smtp no necesita autentifcarse, pero seria necesario utilizar un componenete de pop3 para conectar a la cuenta de correo antes de usar el componente smtp para enviar correo.

Otra opcion (aunque menos flexible y mas rigida) es que si el programa se va a utilizar desde determinados ordenadores de la red local de una empresa por ejemplo, pedir al administrador que configure el servidor de correo, para que los ordenadores con tales o cuales direcciones IPs no necesiten autentificarse para enviar correos.

Saludos

newtron
21-09-2007, 14:10:23
Hola de nuevo, gracias por tan rápida respuesta, pero hay algo que no se me queda claro. ¿Incluyo un componente pop3, me conecto y después uso el componente smtp?, ¿hay que relacionarlos de alguna forma los dos componentes?


Gracias de nuevo y un saludo

Mick
21-09-2007, 15:23:47
Hola de nuevo, gracias por tan rápida respuesta, pero hay algo que no se me queda claro. ¿Incluyo un componente pop3, me conecto y después uso el componente smtp?, ¿hay que relacionarlos de alguna forma los dos componentes?

Gracias de nuevo y un saludo

Si la validacion que hace el servidor es de tipo pop before smtp, no, no hay que relacionarlos para nada, son cosas independientes.

Esto es asi porque en realidad este tipo de autentificacion fue un "apaño" que se inventaron en las primeras epocas de internet cuando empezaron los problemas de spam, y todavia no existia ningun metodo de autentificacion de smtp porque hasta aquel momento no hacia falta.

Es decir el servidor de correo recuerda que hace poco (normalmente unos segundos o minutos), alguien desde el ordenador X, recogio o comprobo el correo, usando un usuario y contraseña validos. Luego si a los pocos segundos o como mucho minutos, ese mismo ordenador intenta enviar correo (sin ningun tipo de autentificacion) el servidor de correo se lo permite. Si pasan X segundos o minutos ya no le deja y hay que volver a recoger o comprobar el correo.

Ni siquiera tienen que ser el mismo programa el que compruebe el correo y lo envie. Si usas el outlook o cualquier cliente de correo para recoger el correo y a los pocos segundos envias un mail utilizando tu componente de smtp (sin autentificarte), el servidor te dejara igualmente.

Saludos

newtron
21-09-2007, 18:16:04
Amigo mick, le he metido un componente pop3 al que me conecto antes de ejecutar el componente smtp y me sigue diciendo lo mismo. He llamado a los del host y me dicen que el método es efectivamente pop before smtp pero nada, ni caso.

Si se te ocurre algo me lo cuentas, de una forma o de otra te agradezco enormemente tu interés en el asunto.

Gracias y un saludo

Garfio
05-10-2007, 13:09:41
Puese porbar con los componentes gratuitos ICS - Internet Component Suite
(Aka FPIETTE's Components). Yo tenía el mismo problema y el SMTP que trae lleva en propiedades el usuario y la contraseña con lo que te evitas tener que recoger antes de enviar.
Un saludo.