Ver Mensaje Individual
  #10 (permalink)  
Antiguo 25/02/2009, 21:05
franco190453
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años
Puntos: 33
Respuesta: Obtener el resultado del envio en PHP

bibliotec:

Cita:
ahora lo que necesito es controlar los errores de recepción, correos llenos etc.
Primeramente, ponernos a enviar correos utilizando sockets
es mas que todo funcion especifica de un servidor de correo.

Por deporte podrias hacer algun codigo para conectar con un servidor y
hacer entrega de un correo simple de texto.
Y va mas o menos como lo que tu has expuesto.

Tu mejor opcion es instalar un servidor de correo completo ya que, normalmente,
estos servidores cuando hay errores de entrega u envio reporta de inmediato al administrador via una direccion de correo interna u otra de tu eleccion,
bien podria redirecionar esa direccion hacia cualquier direccion de correo externa y asi estaras en total control de lo enviado exitosamente y lo no enviado y sus respectivos errores.
Es mas estos servidores aun reportan los retrazos en entregas destinadas a servidores de correos muy congestionados.

Saludos
Franco

P.s. El codigo que tu tienes adolece de el concepto de intercambio de comunicacion entre el codigo y el servidor SMTP, ya que tu solo utilizas fput, fput, fput, seguido sin esperar respuesta.
Cita:
$strMAIL = "MAIL FROM: [email protected] \r\n";
if(!fputs($Conexion,$strMAIL)){
echo "Imposible establecer el origen.";
exit;
} else {
$str_recibimos = fgets($Conexion,256);
echo "<p>";
print_r($str_recibimos);
echo "</p>";
}
Simplemento esto No se hace asi; mas bien mi codigo
que ya he probado en esa parte especifica yo hago lo siguiente ->

Cita:
//Correo Origen
fputs($conexionsmtp, "MAIL FROM: $decorreo" . $nuevalinea);
$respuestasmtp = fgets($conexionsmtp, 515);
$ArrayLogeo['respuestaorigencorreo'] = "$respuestasmtp";
Observa que despues del fputs DEBE venir un FGETS o la comunicacion se corta
y la respuesta debe ser logeada en un array para despues depositarla en un archivo de texto como log de envios. En vez de estar haciendo "\r\n" cada vez y como hay que utilizarla multiples veces, es mejor que hagas un $nuevalinea = "\r\n";

Última edición por franco190453; 25/02/2009 a las 21:14