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";