Foros del Web » Programando para Internet » PHP »

envio de correo mediante phpMailer de consulta

Estas en el tema de envio de correo mediante phpMailer de consulta en el foro de PHP en Foros del Web. Hola amigos del foro espero me puedan ayudar necesito enviar por email los datos de una consulta los datos deben de ir en el body ...
  #1 (permalink)  
Antiguo 01/03/2012, 23:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
envio de correo mediante phpMailer de consulta

Hola amigos del foro espero me puedan ayudar

necesito enviar por email los datos de una consulta

los datos deben de ir en el body , no logro enviarlos

la clase phpMailer sin consulta envia sin problemas me falta enviar el correo con la consulta.

ayuda por favor


Código PHP:
Ver original
  1. $servidor = 'localhost';
  2. $bd = 'calendario';
  3. $usuario = 'postgres';
  4. $contrasenia = 'hoe798cs';
  5.    
  6. global $servidor, $bd, $usuario, $contrasenia;
  7. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  8.  
  9. $consulta = $db->prepare("SELECT * FROM usuario  WHERE correo = '".$correo."'");
  10. $consulta->execute();
  11.  
  12.  
  13. while($fila = $consulta->fetch(PDO::FETCH_ASSOC))
  14.     {
  15.  $cuenta=$fila['cuenta'];
  16.  $contasena=$fila['contrasena'];
  17.  
  18. }
  19.  
  20.  
  21.  
  22.   require_once('phpMailer/class.phpmailer.php');
  23.   require_once("phpMailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  24.  
  25.   $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  26.   $mail->IsSMTP(); // telling the class to use SMTP
  27.   $mail->Host       = "smtp.live.com"; // SMTP server
  28.   $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  29.   $mail->SMTPAuth   = true;                  // enable SMTP authentication
  30.   $mail->Host       = "smtp.live.com"; // sets the SMTP server
  31.   $mail->SMTPSecure = "tls";
  32.   $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
  33.   $mail->Username   = "[email protected]"; // SMTP account username
  34.  
  35.   $mail->AddReplyTo('[email protected]', 'oscar');
  36.   $mail->AddAddress('[email protected]', 'oscar');
  37.   $mail->SetFrom('[email protected]', 'oscar');
  38.   $mail->AddReplyTo('[email protected]', 'oscar');
  39.   $mail->Subject = 'Recuperar Contraseña';
  40.   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  41.   $mail->Body = "Clave:";
  42.   $mail->Send();
  43.   echo "Message Sent OK<p></p>\n";
  44.  
  45. ?>
  #2 (permalink)  
Antiguo 02/03/2012, 01:26
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: envio de correo mediante phpMailer de consulta

Cuál es el valor de $correo en

$consulta = $db->prepare("SELECT * FROM usuario WHERE correo = '".$correo."'");

?
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 02/03/2012, 05:55
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

envio correo por por post

$correo = $_POST['email'];
  #4 (permalink)  
Antiguo 02/03/2012, 06:16
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 6 meses
Puntos: 331
Respuesta: envio de correo mediante phpMailer de consulta

Tal vez es que el body esta vacío??

Código PHP:
Ver original
  1. $mail->Body = "Clave:";

debería ser:

Código PHP:
Ver original
  1. $mail->Body = "Clave: {$cuenta} / {$contrasena}";

o lo que quieras.
__________________
Fere libenter homines, id quod volunt, credunt.
  #5 (permalink)  
Antiguo 02/03/2012, 20:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

Gracias por responder

hice lo que me dijiste pero no me funciona
que estoy haciendo mal?
Código PHP:
Ver original
  1. $mail->Body = "Clave:$cuenta ";
  #6 (permalink)  
Antiguo 02/03/2012, 21:50
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

Amigos no logro mostrar los datos de la consulta

que estoy haciendo mal

ayuda por favor



Código PHP:
Ver original
  1. $correo = $_POST['email'];
  2.  
  3.   require_once('phpMailer/class.phpmailer.php');
  4.   require_once("phpMailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  5.  
  6.   $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  7.   $mail->IsSMTP(); // telling the class to use SMTP
  8.   $mail->Host       = "smtp.live.com"; // SMTP server
  9.   $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  10.   $mail->SMTPAuth   = true;                  // enable SMTP authentication
  11.   $mail->Host       = "smtp.live.com"; // sets the SMTP server
  12.   $mail->SMTPSecure = "tls";
  13.   $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
  14.   $mail->Username   = "[email protected]"; // SMTP account username
  15.   $mail->Password   = "oscarydiana";        // SMTP account password
  16.   $mail->AddReplyTo('[email protected]', 'oscar');
  17.   $mail->AddAddress('[email protected]', 'oscar');
  18.   $mail->SetFrom('[email protected]', 'oscar');
  19.   $mail->AddReplyTo('[email protected]', 'oscar');
  20.   $mail->Subject = 'Recuperar Contraseña';
  21.   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  22.  
  23.   $mensaje="<table width='100%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  24. <tr>
  25. <td width='113' height='22' valign='middle' background'grid3-hrow.gif' class='borexterior' id='oferta_1'><div align='center'><strong>Usuario</strong></div></td>
  26. <td width='104' valign='middle' background='grid3-hrow.gif' class='borexterior' id='oferta_2'><div align='center'><strong>Contraseña</strong></div></td>
  27. </tr>";
  28.  
  29.  $servidor = 'localhost';
  30. $bd = 'calendario';
  31. $usuario = 'postgres';
  32. $contrasenia = 'hoe798cs';
  33.    
  34. global $servidor, $bd, $usuario, $contrasenia;
  35. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  36.  
  37. $consulta = $db->prepare("SELECT * FROM usuario  WHERE correo = '".$correo."'");
  38. $consulta->execute();
  39.  
  40.   while($fila = $consulta->fetch(PDO::FETCH_ASSOC))
  41.     {
  42.  //$cuenta=$fila['cuenta'];
  43.  //$contasena=$fila['contrasena'];
  44.  $mensaje.="<tr align='center'>
  45. <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'>".$fila['cuenta']."</td>
  46. <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$fila['contrasena']."</td>
  47. </tr>
  48. </table>";
  49. }
  50.  
  51.    
  52.   $mail->Body = $mensaje;
  53.   $mail->Send();
  54.   echo "Message Sent OK<p></p>\n";
  #7 (permalink)  
Antiguo 03/03/2012, 14:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

amigos ya logro enviar el correo , pero tengo un problema envia 2 veces el correo y solo lo necesito una vez

Código PHP:
Ver original
  1. $correo = $_POST['email'];
  2. //$id = $_POST['id'];
  3. //echo "<br>";
  4. //echo $_REQUEST['captcha_code'];
  5.  
  6.  
  7.   require_once('phpMailer/class.phpmailer.php');
  8.   require_once("phpMailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  9.  
  10.   $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  11.   $mail->IsSMTP(); // telling the class to use SMTP
  12.   $mail->Host       = 'smtp.live.com'; // SMTP server
  13.   $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  14.   $mail->SMTPAuth   = true;                  // enable SMTP authentication
  15.   $mail->Host       = 'smtp.live.com'; // sets the SMTP server
  16.   $mail->SMTPSecure = 'tls';
  17.   $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
  18.   $mail->Username   = '[email protected]'; // SMTP account username
  19.   $mail->Password   = 'oscarydiana';        // SMTP account password
  20.   $mail->AddAddress($_POST['email']);
  21.   $mail->SetFrom($_POST['email']);
  22.   $mail->Subject = 'Recuperar Contraseña';
  23.   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  24.  
  25.   $mensaje="Estimado Usuario:<br />
  26. <br /><table width='100%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  27. <tr>
  28. <td width='113' height='22' valign='middle' background'grid3-hrow.gif' class='borexterior' id='oferta_1'><div align='center'><strong>Usuario</strong></div></td>
  29. <td width='104' valign='middle' background='grid3-hrow.gif' class='borexterior' id='oferta_2'><div align='center'><strong>Contraseña</strong></div></td>
  30. </tr>";
  31.  
  32.  $servidor = 'localhost';
  33. $bd = 'calendario';
  34. $usuario = 'postgres';
  35. $contrasenia = 'hoe798cs';
  36.    
  37. global $servidor, $bd, $usuario, $contrasenia;
  38. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  39.  
  40. $consulta = $db->prepare("SELECT * FROM usuario  WHERE correo = '".$correo."'");
  41. $consulta->execute();
  42.  
  43.   while($fila = $consulta->fetch(PDO::FETCH_ASSOC))
  44.     {
  45.  //$cuenta=$fila['cuenta'];
  46.  //$contasena=$fila['contrasena'];
  47.  $mensaje.="<tr align='center'>
  48. <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'>".$fila['cuenta']."</td>
  49. <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$fila['contrasena']."</td>
  50. </tr>
  51. </table>";
  52. }
  53.  
  54.    
  55.   $mail->Body = $mensaje;
  56.   $mail->Send();
  57.   if(!$mail->Send()){
  58.    //echo "No se pudo enviar el Mensaje.";
  59.    echo '<script languaje="Javascript">location.href="views/frm_sucess_correo_no.php"</script>';
  60.    
  61. }else{
  62.    //echo "Mensaje enviado";
  63.    echo '<script languaje="Javascript">location.href="views/frm_sucess_correo.php"</script>';
  64. }
  #8 (permalink)  
Antiguo 03/03/2012, 14:37
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 10 meses
Puntos: 528
Respuesta: envio de correo mediante phpMailer de consulta

Es que lo envías dos veces:
$mail->Send();
if(!$mail->Send()){

con poner sólo el
if(!$mail->Send()){

lo enviará (siempre que no haya algún fallo)
  #9 (permalink)  
Antiguo 03/03/2012, 14:40
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

gracias por responder
  #10 (permalink)  
Antiguo 03/03/2012, 14:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 6 meses
Puntos: 6
Respuesta: envio de correo mediante phpMailer de consulta

gracias por responponder hice lo que me dijiste y salio perfecto


tengo un problema es con la visualizacion de que el correo fue enviado o no fue enviado

les explicare un poco


para llegar al formulario para recuperar la clave sigo el link
<a href="index.php?controller=user_&accion=recu">¿Has olvidado tu contraseña?</a>

function recu()
{



if($_POST)
{


require 'views/recu.php';



}


require 'views/recuperar.php';

}

en recu.php tengo el codigo que envia le correo

Código PHP:
Ver original
  1. require_once('phpMailer/class.phpmailer.php');
  2.   require_once("phpMailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  3.  
  4.   $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  5.   $mail->IsSMTP(); // telling the class to use SMTP
  6.   $mail->Host       = 'smtp.live.com'; // SMTP server
  7.   $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  8.   $mail->SMTPAuth   = true;                  // enable SMTP authentication
  9.   $mail->Host       = 'smtp.live.com'; // sets the SMTP server
  10.   $mail->SMTPSecure = 'tls';
  11. .
  12. .
  13. .
  14. .
  15.  
  16. $mail->Body = $mensaje;
  17.   if(!$mail->Send()){
  18.    //echo "No se pudo enviar el Mensaje.";
  19.    echo '<script languaje="Javascript">location.href="views/frm_sucess_correo_no.php"</script>';
  20.    
  21. }else{
  22.    //echo "Mensaje enviado";
  23.    echo '<script languaje="Javascript">location.href="views/frm_sucess_correo.php"</script>';
  24. }

el inconveniente es que al momento que envio por post

en pantalla visualizo esto

SMTP -> FROM SERVER:220 BLU0-SMTP112.phx.gbl Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at Sat, 3 Mar 2012 12:47:23 -0800
SMTP -> FROM SERVER: 250-BLU0-SMTP112.phx.gbl Hello [190.71.153.210] 250-TURN 250-SIZE 41943040 250-ETRN 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250-TLS 250-STARTTLS 250 OK
SMTP -> FROM SERVER:220 2.0.0 SMTP server ready
SMTP -> FROM SERVER: 250-BLU0-SMTP112.phx.gbl Hello [190.71.153.210] 250-TURN 250-SIZE 41943040 250-ETRN 250-PIPELINING 250-DSN 250-ENHANCEDSTATUSCODES 250-8bitmime 250-BINARYMIME 250-CHUNKING 250-VRFY 250-AUTH LOGIN PLAIN 250 OK
SMTP -> FROM SERVER:250 2.1.0 [email protected] OK
SMTP -> FROM SERVER:250 2.1.5 [email protected]
SMTP -> FROM SERVER:354 Start mail input; end with .
SMTP -> FROM SERVER:250 2.6.0 <37fd62732bd882973ba09094c0c4381d@localhost> Queued mail for delivery

necesito visualizar algo como su correo fue enviado

pero no se como hacerlo

Etiquetas: correo, html, mediante, phpmailer, sql, usuarios
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 01:51.