Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/02/2009, 02:42
Bibliotec
 
Fecha de Ingreso: enero-2002
Mensajes: 182
Antigüedad: 22 años, 3 meses
Puntos: 0
De acuerdo

Muchisimas gracias a todos, lo que quiero hacer va mas en la línea de Remsankar, lo que me comentas franco190453 ya lo he usado pero ahora lo que necesito es controlar los errores de recepción, correos llenos etc. Lo último que me comentas es muy interesante voy a estudiar toda la información que me habeis pasado para haceros mas preguntas, de nuevo muchs gracias a los tres.

He descargado y he estado probando la clase SMTP E-mail sending class, he realizado un par de pruebas y tengo un problema con servidores que requieren autenticación me da el siguiente error:

"535 5.7.0 Error: authentication failed: authentication failure"

Hago un include de la clase sasl para autenticar.

¿Sabeis como solucionarlo de forma sencilla?

Un saludo y gracias.

Ya se pq es se produce al ejecutar el php fuera del equipo donde esta el smtp ¿esto se puede salvar de alguna manera?

Bueno parece que esta clase finalmente tampoco me sirve ya que solo me da información de conexión con servidor de envio no con el de recepción, sabeis alguna que haga la otra parte tb.
Gracias.

Prueba con seguimiento del mensaje:

Código:
<?php
//Abrimos la conexión 
$Conexion = fsockopen("smtp.miservidor.com","25"); 

//Sacamos el contenido de lo que nos devuelve el servidor antes de seguir 
$str_recibe = fgets($Conexion,256); 
echo "<p>"; 
print_r($str_recibe); 
echo "</p>"; 

//Esta es la cadena que dice "Hola". 
		$str_hola = "EHLO programacion.comrn"; 
		if(!fputs($Conexion,$str_hola)) { 
		echo "Imposible decirle hola al servidor."; 
		exit; 
		} else { 
		$str_recibimos = fgets($Conexion,256); 
		echo "<p>"; 
		print_r($str_recibimos); 
		echo "</p>"; 
		}

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

		$strRCPT .= "RCPT TO: [email protected] \r\n";
		if(!fputs($Conexion,$strRCPT)){
		echo "Imposible establecer el origen."; 
		exit; 
		} else { 
		$str_recibimos = fgets($Conexion,256); 
		echo "<p>"; 
		print_r($str_recibimos); 
		echo "</p>"; 
		}


		$strDATA1 = "DATA\r\n";
		if(!fputs($Conexion,$strDATA1)){
		echo "Error."; 
		exit; 
		} else { 
		$str_recibimos = fgets($Conexion,256); 
		echo "<p>"; 
		print_r($str_recibimos); 
		echo "</p>"; 
		}

		
		$strS = "Subject: Prueba de correo \r\n\r\n";
		if(!fputs($Conexion,$strS)){
		echo "Imposible establecer el asunto."; 
		exit; 
		} else { 
		$str_recibimos = fgets($Conexion,256); 
		echo "<p>"; 
		print_r($str_recibimos); 
		echo "</p>"; 
		}
		
		$strDATA2 = "Esto es una prueba. \r\n.\r\n";
		if(!fputs($Conexion,$strDATA2)){
		echo "Imposible establecer el mensaje."; 
		exit; 
		} else { 
		$str_recibimos = fgets($Conexion,256); 
		echo "<p>"; 
		print_r($str_recibimos); 
		echo "</p>"; 
		}


//envio del email
		
//Salimos de la sesión, primero diciendo "Adios" al servidor 
//y luego cerrando el socket con fclose() 
if(!fputs($Conexion,"QUITrn")) { 
echo "No se pudo salir de la sesión con el servidor SMTP"; 
exit; 
} else { 
fclose($Conexion); 
echo "Cerrado y terminado"; 
exit; 
} 
?>
Me responde todo con 250 y oks pero no manda el correo, ¿sabeis a que se debe?

Un saludo.

Última edición por GatorV; 25/02/2009 a las 11:08