Foros del Web » Programando para Internet » PHP »

fallo al enviar un email

Estas en el tema de fallo al enviar un email en el foro de PHP en Foros del Web. hola a todos! veran tengo una ligera duda la cual pregunte, pero la solucion que me aporto kien me la dio resulto no ser la ...
  #1 (permalink)  
Antiguo 27/07/2011, 02:15
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
fallo al enviar un email

hola a todos!

veran tengo una ligera duda la cual pregunte, pero la solucion que me aporto kien me la dio resulto no ser la correcta.

tengo en mi pagina web q estoy creando un codigo q lo q hace es enviar un email en caso de q el usuario se olvide la contraseña, para poder hacerlo utilizo el phpmailer el cual me dijeron q era de lo mejorcito y sencillo para poder hacerlo y asi lo hice, mire en varios sitios haber como era el codigo y yo lo hice para mi web kedandome asi
Código PHP:
Ver original
  1. <?php
  2.  
  3. include('conectarse.php');
  4.  
  5. $recuperar=$_POST['email'];
  6.  
  7. if (!empty($_POST)) {
  8.     $link = conectarse();
  9.    
  10.     $sql = 'SELECT nombre usu,pass FROM miembros WHERE mail = \''.$recuperar.'\'';
  11.     $query = mysql_query($sql,$link) or die(mysql_error());
  12.     $numUsers = mysql_num_rows($query);
  13.     if ($numUsers == 1){
  14.         while ($row = mysql_fetch_array($query)){
  15.             $usuario= $row['usu'];
  16.             $clave= $row['pass'];
  17.             $nombre = $row['nombre'];
  18.         }
  19.  
  20.     include("class.phpmailer.php");
  21.     include("class.smtp.php");
  22.  
  23.  
  24.     $mail = new PHPMailer();
  25.     $mail->IsSMTP();
  26.     //$mail->CharSet = 'UTF-8';
  27.     $mail->SMTPAuth = true;
  28.     $mail->SMTPSecure = "ssl";
  29.     $mail->Host = "smtp.gmail.com";
  30.     $mail->Port = 465;
  31.     $mail->Username = "[email protected]";
  32.     $mail->Password = "*******";
  33.     $mail->From = "[email protected]";
  34.     $mail->FromName = "AEROBIOLOGIA";
  35.     $mail->Subject = "su usuario y contraseña";
  36.     $mail->AltBody = "Hola, te envio tu usuario y contraseña:";
  37.     $mail->MsgHTML("Hola, aqui tienes tu nombre de usuario : ".$usuario." y contraseña:<b>".$clave."</b>.");
  38.     $mail->AddAddress(/*$recuperar*/"[email protected]", "Destinatario");
  39.     $mail->IsHTML(true);
  40.     if(!$mail->Send()) {
  41.         echo "Error: " . $mail->ErrorInfo;
  42.     }
  43.     else{
  44.         echo "Mensaje enviado correctamente";
  45.     }
  46.  
  47.     }
  48. else{
  49.     echo "EMAIL INEXISTENTE";  
  50.  
  51.     }
  52.  
  53. }
  54.  
  55. ?>

pues bien mi problema es q me da un error y me pone: could not conect to smtp host
la respuesta q me dieron fue; q seria x culpa de mi ordenador x tener el firewall activado y q cuando lo subiese a un servidor funcionaria, asiq asi lo hice, pero mi sorpresa fue q seguia dando el mismo error, y ya buske en varios sitios y en todos viene el codigo exactamente igual al q tengo yo, y ya no se q mas hacer para hacerlo funcionar, si alguien me puede echar una mano le estaria muy agradecido ya q llevo con esto mas de un mes,

gracias a todos
  #2 (permalink)  
Antiguo 27/07/2011, 06:00
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: fallo al enviar un email

Yo te aconsejo que te fijes en:

1.- Que el smtp es correcto y que trabaja en el puerto 465 como definiste.
2.- Que el usuario es la direccion de correo completa y no solo el identificado (braiscalvogarcia) ya que, como todo sabemos, solo eso necesitas para loguearte en gmail.
3.- Verifica la contraseña (por las dudas)


No creo que el firewall tenga mucho que ver.

Espero haber sido de utilidad.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 27/07/2011, 06:48
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 1 mes
Puntos: 2
Respuesta: fallo al enviar un email

Hola, para el envío de correo de una manera sencilla y eficaz te recomiendo uses phpmailer con gmail, el siguiente link me sirvió para comenzar a trabajar con esta librería desde "cero",

http://www.taringa.net/comunidades/w...il-y-php).html

realice cada uno de los pasos ahí descritos en un par de minutos y sin problema alguno pude enviar correos por PHP.

Espero te sea ùtil.
  #4 (permalink)  
Antiguo 28/07/2011, 02:05
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: fallo al enviar un email

mensaje a ArkangelGammar:

revise el puerto y si es el 465, tb revise mi contraseña y es la correcta y tb revise la direccion de correo electronico y sigue sin ir,


mensaje a guillermosoft:

phpmailer es la libreria q utilizo, y el codigo q puse en mi anterior post es el q funciona con phpmailer, y en todos de ayuda q vi lo utilizaban tal cual lo utilizo yo,

pero no se xq sigue sin funcionar, el error q me da es q no se puede conectar al puerto smtp, y ya lo revise mil veces y el puerto q especifico es el q dice gmail q hay q utilizar pero no logro encontrar el fallo

gracias a ambos por las respuestas
  #5 (permalink)  
Antiguo 28/07/2011, 02:44
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: fallo al enviar un email

Lo pruebas en local? O en un servidor?


Edit:

Vale, lo siento, no lo había leido. Prueba desactivando el firewall en local, puede estar bloqueando ese puerto. Si así te funciona, es q tb está bloqueado en el servidor :S

Sino, prueba con TLS en vez de SSL y en el puerto 587 o.o
  #6 (permalink)  
Antiguo 28/07/2011, 02:51
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: fallo al enviar un email

Por cierto... tienes activado POP en tu cuenta de gmail? :)
  #7 (permalink)  
Antiguo 28/07/2011, 03:16
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: fallo al enviar un email

tengo POP activado y ya desactive el firewall pero sigue diciendome el mismo error, q no se puede conectar al host smtp de gmail,

ya no se q hacer xq el codigo funciona q lo mire en miles de foros y posts y en todos hacen asi y le funciona a la demas gente pero no se xq a mi no,

para probar con TLS q tendria q modificar el codigo donde pone
Código PHP:
Ver original
  1. $mail = new PHPMailer();
  2.     $mail->IsSMTP();
  3.     //$mail->CharSet = 'UTF-8';
  4.     $mail->SMTPAuth = true;
  5.     $mail->SMTPSecure = "ssl";
  6.     $mail->Host = "smtp.gmail.com";
  7.     $mail->Port = 465;

pero como lo cambiaria ? xq con tls no tengo ni idea
  #8 (permalink)  
Antiguo 28/07/2011, 07:53
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: fallo al enviar un email

Proba esto:

Código PHP:
    $mail->IsSMTP();
    
$mail->Host 'ssl://smtp.gmail.com';
    
$mail->Port 465;
    
$mail->SMTPAuth true
Ya con eso tendria que andar bien.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #9 (permalink)  
Antiguo 28/07/2011, 16:50
 
Fecha de Ingreso: marzo-2011
Mensajes: 226
Antigüedad: 13 años, 1 mes
Puntos: 1
Respuesta: fallo al enviar un email

el fallo estaba en el php.ini

mi codigo funciona a la perfeccion pero gracias a todos

Etiquetas: email, fallo, html, mysql, 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 10:22.