Foros del Web » Programando para Internet » PHP »

S.O.S - Recuperar contraseña no envia mail

Estas en el tema de S.O.S - Recuperar contraseña no envia mail en el foro de PHP en Foros del Web. Saludos muchachos hice uso d un aporte de aqui del foro y chevere si no me consigue el mail lo hace bien y si lo ...
  #1 (permalink)  
Antiguo 16/06/2009, 10:53
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
S.O.S - Recuperar contraseña no envia mail

Saludos muchachos hice uso d un aporte de aqui del foro y chevere si no me consigue el mail lo hace bien y si lo consigue tambien pero el detalle esta en q no me envia el mai... lo unico q hice fue eliminar el update de la tabla de donde extraigo el pass y le di q enviara solo los datos sin hacer update.. les muestro

Código PHP:
<?php
session_start
(); //abrimos la sesion para poder despues pasar variables de una pagina a otra

//datos para establecer la conexion con la base de mysql.
$conexion=mysql_connect('localhost','admin','Xpass')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('xbd')or die ('Error al seleccionar la Base de Datos: '.mysql_error());



function 
quitar($mensaje//funcion para quitar caracteres no permitidos
{
    
$nopermitidos = array("'",'\\','<','>',"\"",";","$","%","&","/","|","{","}","[","]","+","#");
    
$mensaje str_replace($nopermitidos""$mensaje);
    return 
$mensaje;
}
function 
mysql_escape($cadena) {
    if(
get_magic_quotes_gpc() != 0) {
        
$cadena stripslashes($cadena);
    }
    return 
mysql_real_escape_string($cadena);
}  

if (isset(
$_POST["pass"])) {
    
    
$pass quitar($_POST["pass"]); //variable que viene del campo del form pasword
    
$pass2 quitar($_POST["pass2"]);//variable que viene del campo del form pasword2
                
$pass mysql_escape($pass);  //aplico la funcion mysql_escape
                
$pass2 mysql_escape($pass2);

    
$pass md5($pass); // codificamos los password con md5
    
$pass2 md5($pass);
    
$email $_SESSION['email']; // recogemos la variable email y username que guardamos en la sesion en el script anterior
                
$username $_SESSION['username']; 


    
    
    
// Hay campos en blanco
  /*  if($pass==NULL|$pass2==NULL) {
        echo "un campo está vacio.";
    
        }else{
                              // si coiciden los codigos de seguridad
            if (quitar($_SESSION['tmptxt_seg']) !== quitar($_POST['tmptxt_seg'])) { 
                    echo "Introdujo mal el codigo de seguridad.";
                
        } else { 
        
    
        // ¿Coinciden las contraseñas?
        if($pass!=$pass2) {
            echo "Las contraseñas no coinciden";
            formRegistro();
        }else{
        
        
        $query = "UPDATE invitados
            SET pass = '$pass' WHERE   usuario = '$username' OR email ='$email' " ;
                mysql_query($query) or die(mysql_error());    */
                
            //obtengo los datos del usuario para mandar el email    
            
$result "SELECT * FROM invitados WHERE email = '$email'";
                    
             
$result mysql_query($result) or die ( mysql_error() );        
        
            
$row mysql_fetch_array($result); 
                
        echo 
"La activacion de su nuevo password  tuvo exito.";
        
            

    
         

                
                          
// Datos del email

$nombre_origen    "Recordando tu contraseña desde Bodakarenale.com";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email


$asunto           "Activacion de nueca contraseña, guarde este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
          <strong>GRACIAS POR INGRESAR.</strong><br>
          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS.</strong><br>
    </div>
    </td>
  </tr>
</table>'
;

                


$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { } 
     
    
    
    }



?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 16/06/2009, 13:07
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: S.O.S - Recuperar contraseña no envia mail

Pues usando la @ lo unico que haces es suprimir el error, con eso es muy complicado ver el porque no hace el envío, te recomendaría quitar la @ para que veas el porque o el mensaje de error.

Saludos.
  #3 (permalink)  
Antiguo 16/06/2009, 13:38
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: S.O.S - Recuperar contraseña no envia mail

esto fue lo ultimo q hice.... pase en vez del email el campo id... cabien en vez d usar session use variables.. es decir paso el ID por variables y la capturo en recuperar_2.php y queda asi

Código PHP:
<?php
@$email=$_REQUEST['id'];
$conexion=mysql_connect('localhost','bodakare_adminka','alekaren09')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('bodakare_boda')or die ('Error al seleccionar la Base de Datos: '.mysql_error());




            
$result "SELECT * FROM invitados WHERE id = $email";
                    
             
$result mysql_query($result) or die ( mysql_error() );        
        
            
$row mysql_fetch_array($result); 
                
        echo 
"La activacion de su nuevo password  tuvo exito.";
        
            

    
         

                
                          
// Datos del email

$nombre_origen    "Recordando tu contraseña desde Bodakarenale.com";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email


$asunto           "Activacion de nueca contraseña, guarde este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
          <strong>GRACIAS POR INGRESAR.</strong><br>
          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS.</strong><br>
    </div>
    </td>
  </tr>
</table>'
;

                


$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { } 
?>
<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php echo $row['id']; ?></td>
  </tr>
</table>
pero me da este error
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

s quieren probar
http://bodakarenale.com/form/form.php

el mail q tngo en base d datos es [email protected]
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 16/06/2009, 13:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: S.O.S - Recuperar contraseña no envia mail

El problema no es el mail() es un query que hace a la base de datos y para mi que es aqui

$result = "SELECT * FROM invitados WHERE id = $email";

Debes llamar el email entre comillas ejemplo

Código PHP:
$result "SELECT * FROM invitados WHERE id = '".$email."'"
  #5 (permalink)  
Antiguo 16/06/2009, 14:05
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: S.O.S - Recuperar contraseña no envia mail

entre comillas hace lo mismo... ahora me funciona.. pero sigue sin mandar el mail... fijense!!! para mi el problema esta en la clase mail...

Código PHP:
<?php
@$email=$_REQUEST['email'];
$conexion=mysql_connect('localhost','bodakare_adminka','alekaren09')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('bodakare_boda')or die ('Error al seleccionar la Base de Datos: '.mysql_error());




            
$sql "SELECT * FROM invitados WHERE id = $email";
                    
             
$sql_exec mysql_query($sql) or die("Error en consulta: $sql_exec, error: "mysql_error());
        
            
$row mysql_fetch_array($sql_exec); 
                
        echo 
"La activacion de su nuevo password  tuvo exito.";
        
            

    
         

                
                          
// Datos del email

$nombre_origen    "Recordando tu contraseña desde Bodakarenale.com";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email


$asunto           "Activacion de nueca contraseña, guarde este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
          <strong>GRACIAS POR INGRESAR.</strong><br>
          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS.</strong><br>
    </div>
    </td>
  </tr>
</table>'
;

                


$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (@
mail($email_destino$asunto$mensaje$headers)) 
    { } 
?>

<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php echo $row['id']; ?> - <?php echo $row['usuario']; ?> - <?php echo $row['pass']; ?></td>
  </tr>
</table>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 16/06/2009, 14:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: S.O.S - Recuperar contraseña no envia mail

pero que error te da. Como te dijo GatorV quitale los @ a todo para que veas los errores
  #7 (permalink)  
Antiguo 16/06/2009, 14:17
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: S.O.S - Recuperar contraseña no envia mail

no me da errores.. sensillamente jamas llega el mail... Oo
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #8 (permalink)  
Antiguo 16/06/2009, 14:18
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: S.O.S - Recuperar contraseña no envia mail

Trata con un email sencillo para quitar dudas de que sea con el stmp server

mail("email@ email.com","Titulo sencillo","Mensaje corto solo para saber si recibe el email");
  #9 (permalink)  
Antiguo 16/06/2009, 14:28
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: S.O.S - Recuperar contraseña no envia mail

sin el @ funciona a la perfeccion :D

gracias a los dos por su tiempo!!!!
saludos!!!

Código PHP:
<?php
@$email=$_REQUEST['email'];
$conexion=mysql_connect('localhost','bodakare_adminka','alekaren09')or die ('Ha fallado la conexión: '.mysql_error());
mysql_select_db('bodakare_boda')or die ('Error al seleccionar la Base de Datos: '.mysql_error());




            
$sql "SELECT * FROM invitados WHERE id = $email";
                    
             
$sql_exec mysql_query($sql) or die("Error en consulta: $sql_exec, error: "mysql_error());
        
            
$row mysql_fetch_array($sql_exec); 
                
        echo 
"La activacion de su nuevo password  tuvo exito.";
        
            

    
         

                
                          
// Datos del email

$nombre_origen    "Hola";
$email_origen     "[email protected]";
$email_copia      "[email protected]";
$email_ocultos    "[email protected]";
//$email_destino    = "".$row['email']."";  
$email_destino    "[email protected]";  //cambiar esta linea por la de encima cuando se termine la aplicacion para pruebas pon tu email


$asunto           "Activacion de nueva contraseña, guarde este email.";

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2">
  <tr>
    <td width="623" align="left"></td>
  </tr>
  <tr>
    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos  '
.$row['usuario'].'</strong></div></td>
  </tr>
  <tr>
    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '
.$row['usuario'].'</strong><br><br><br>
          
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br>
          <strong>REACTIVO SU NUEVA CONTRASEÑA SIN NINGUN INCIDENTE.</strong><br><br>
          <strong>GRACIAS POR INGRESAR.</strong><br>
          <strong>PRONTO ACTUALIZAREMOS CONTENIDOS.</strong><br>
    </div>
    </td>
  </tr>
</table>'
;

                


$formato          "html";

//*****************************************************************//
$headers  "From: $nombre_origen <$email_origen> \r\n";
$headers .= "Return-Path: <$email_origen> \r\n";
$headers .= "Reply-To: $email_origen \r\n";
$headers .= "X-Sender: $email_origen \r\n";
$headers .= "X-Priority: 3 \r\n";
$headers .= "MIME-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: 7bit \r\n";

//*****************************************************************//
 
if($formato == "html")
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
   else
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }

if (
mail($email_destino$asunto$mensaje$headers)) 
    { } 
?>

<table width="500" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td><?php echo $row['id']; ?> - <?php echo $row['usuario']; ?> - <?php echo $row['pass']; ?></td>
  </tr>
</table>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
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 04:07.