Foros del Web » Programando para Internet » PHP »

función mail() no envía correo

Estas en el tema de función mail() no envía correo en el foro de PHP en Foros del Web. Que tal amigos, quisiera saber si alguno de ustedes le ha ocurrido algún problema parecido ha este. Tengo declarada la funcion mail(), para enviar un ...
  #1 (permalink)  
Antiguo 23/11/2012, 12:27
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Pregunta función mail() no envía correo

Que tal amigos, quisiera saber si alguno de ustedes le ha ocurrido algún problema parecido ha este.

Tengo declarada la funcion mail(), para enviar un mensaje a una dirección de correo, la cual extraigo de una tabla llamada "clientes".

Se supone que todo anda bien, pues no tengo ningún error de código, hice todo tipo de comparaciones para mostrar que el mensaje fue enviado, pues me muestra el mensaje de que se envió, pero el problema es que el mensaje nunca llega al correo destino.

Alguien sabe a que se deba este error?

Aquí esta la parte de mi código donde se envía el correo, para que le den una checada.

Código PHP:
Ver original
  1. //Enviar correo de confirmacion al cliente cuando la solicitud haya sido aceptada por los tres departamentos
  2.        
  3.             $estados = "SELECT * FROM estados WHERE nosis='$nosis'";
  4.    
  5.             $resultado = mysql_query($estados,$conexion);
  6.            
  7.             while($fila = mysql_fetch_array($resultado)){
  8.            
  9.                 if($fila['es_dist']=="Aceptada" && $fila['es_pla'] =="Aceptada" && $fila['es_med']=="Aceptada"){
  10.                
  11.                         $select = "SELECT * FROM clientes WHERE solicitud_no='$nosis'";
  12.                        
  13.                         $result = mysql_query($select,$conexion);
  14.                        
  15.                         while($fila2 = mysql_fetch_array($result)){
  16.                        
  17.                         $enviar = mail($fila2['correo'],"Solicitud Aceptada",$texto,$encabezado);
  18.                        
  19.                         if($enviar == true){
  20.                             echo "<div align='center'>
  21.                             <br>
  22.                             <b>La solicitud con numero $nosis ha sido aceptada por los 3 departamentos y se le ha enviado un correo de confirmacion al cliente.</b>
  23.                             <br>
  24.                             </div>";
  25.                             }else{
  26.                             echo "<div align='center'>
  27.                             <br>
  28.                             <b>Se produjo un error en el envio del mensaje.</b>
  29.                             <br>
  30.                             </div>";
  31.                             }
  32.                         }
  33.                
  34.                 }else{
  35.                     echo "<div align='center'>
  36.                         <br>
  37.                         <b>La solicitud con numero $nosis aun no ha sido aceptada por los 3 departamentos.</b>
  38.                         <br>
  39.                         </div>";
  40.                 }
  41.            
  42.             }
  #2 (permalink)  
Antiguo 23/11/2012, 12:50
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: función mail() no envía correo

Quitale el $enviar= , con eso el if siguiente sobraría, tómalo directamente como que es true y muestra directamente el mensaje que hay dentro del if, prueba y me dices
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #3 (permalink)  
Antiguo 23/11/2012, 12:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: función mail() no envía correo

pues en un primer vistazo, el codigo parece estar bien... ¿No será que está simplemente tardando en llegar (eso me ha pasado muchas veces? ¿o bien está llegando a la carpeta "spam"?
  #4 (permalink)  
Antiguo 23/11/2012, 12:53
 
Fecha de Ingreso: septiembre-2009
Mensajes: 56
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: función mail() no envía correo

lo que comenta CoriaWeb es 100% correcto... no lo habia visto.... la instruccion mail no debe estar asignada a una variable porque se ejecuta directamente.
  #5 (permalink)  
Antiguo 23/11/2012, 13:36
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: función mail() no envía correo

Gracias jfgg01 y CoriaWeb por sus respuestas, ya se a que se debe el problema, pues es que estoy trabajando de manera local, es decir con http:localhost\..\..

Hay que tener cuidado con esto, si alguien mas trabaje con esta funcion, ya que la función mail() solo enviará un email si el servidor está configurado para enviar email. Si estas utilizando un servidor local muy probablemente no estará configurado para enviar emails, pero si subes tu página a un servidor web probablemente si enviará el email.
  #6 (permalink)  
Antiguo 23/11/2012, 15:30
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 11 años, 7 meses
Puntos: 130
Respuesta: función mail() no envía correo

De todas formas, creo que tu código tal como esta no funcionaría, hiciste lo que te comente?
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #7 (permalink)  
Antiguo 24/11/2012, 13:11
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: función mail() no envía correo

Así es CoriaWeb, quite la variable $enviar asignada a la funcion mail() y solamente deje que se ejecutara mail() y que me muestre el mensaje que ya se envío el mail y funciona bien, no produce errores.

Ahora solo falta probarlo en un servidor ya montado y corroborar que si envía el email a la dirección deseada, cuando lo haya comprado les comento que sucedió.

De nuevo gracias por su ayuda!

Etiquetas: correo, mail, mysql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:33.