Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/02/2014, 07:53
Avatar de el_cesar
el_cesar
 
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años, 8 meses
Puntos: 20
Respuesta: No puedo usar Phpmailer con gmail

La solución fue enviarlo por el localhost de esta manera

Código PHP:
Ver original
  1. <?php
  2. include ('conexion.php');
  3.  
  4. //Recibimos las variables
  5. $codigo = $_POST['codigo'];
  6. $email = $_POST['email'];
  7. $libro = $_POST['libro'];
  8.  
  9. //Desechamos el código
  10.  
  11. $update = "UPDATE primer_ttiraje SET activo = '1'  WHERE codigo ='$codigo'";
  12. $r_update = mysql_query ($update) or die (mysql_error());
  13.  
  14. $update2 = "UPDATE primer_ttiraje SET libro = '$libro' WHERE codigo ='$codigo' ";
  15. $r_update2 = mysql_query ($update2) or die (mysql_error());
  16.  
  17. //Enviamos el libro por correo:
  18.  
  19.  
  20. if ($libro =='1') {
  21. // primero hay que incluir la clase phpmailer para poder instanciar
  22.       //un objeto de la misma
  23.       require "PHPMailer/class.phpmailer.php";
  24.  
  25.       //Crear una instancia de PHPMailer
  26. $mail = new PHPMailer();
  27. //Definir que vamos a usar SMTP
  28.  
  29.       //Indicamos cual es nuestra dirección de correo y el nombre que
  30.       //queremos que vea el usuario que lee nuestro correo
  31.       $mail->From = "[email protected]";
  32.  
  33.       $mail->FromName = "The Matrix Thinking";
  34.  
  35.       //Asignamos asunto y cuerpo del mensaje
  36.       //El cuerpo del mensaje lo ponemos en formato html, haciendo
  37.       //que se vea en negrita
  38.       $mail->Subject = "Libro Piensa en lo Nuevo";
  39.       $mail->Body = "<b>Acabas de recibir el libro Piensa en lo Nuevo en formato pdf, descargalo y disfruta tu lectura.</b>";
  40.  
  41.       //Definimos AltBody por si el destinatario del correo no admite
  42.       //email con formato html
  43.       $mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto";
  44.  
  45.       //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
  46.       //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120  
  47.       $mail->Timeout=120;
  48.  
  49.       //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario
  50.       $mail->AddAttachment('http://www.ricardolopezvega.com/matrix/beta2/zte45m8Ih/Piensa_en_Lo_Nuevo/libro.pdf');
  51.      
  52.  
  53.       //Indicamos cuales son las direcciones de destino del correo y enviamos
  54.       //los mensajes
  55.       //reset($direcciones);
  56.       //while (list($clave, $valor)=each($direcciones)) {
  57.     $mail->AddAddress($email);
  58.  
  59.     //se envia el mensaje, si no ha habido problemas la variable $success
  60.     //tendra el valor true
  61.     $exito = $mail->Send();
  62.  
  63.     //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas
  64.     //como mucho para intentar enviar el mensaje, cada intento se hara 5 s
  65.     //segundos despues del anterior, para ello se usa la funcion sleep
  66.     $intentos=1;
  67.     while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){
  68.        sleep(5);
  69.            //echo $mail->ErrorInfo;
  70.            $exito = $mail->Send();
  71.            $intentos=$intentos+1;              
  72.     }
  73.  
  74.     //La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con
  75.     //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho
  76.     //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente
  77.     if ($mail->ErrorInfo=="SMTP Error: Data not accepted") {
  78.        $exito=true;
  79.         }
  80.        
  81.     if(!$exito)
  82.     {
  83.        echo "Problemas enviando correo electrónico a ".$valor;
  84.        echo "<br/>".$mail->ErrorInfo;  
  85.     }
  86.     else
  87.     {
  88.        //Mostramos un mensaje indicando las direccion de
  89.        //destino y fichero  adjunto enviado en el mensaje  
  90.        $mensaje="<p>Has enviado un mensaje a:<br/>";
  91.        $mensaje.=$valor." ";
  92.        if ($archivo !="none") {
  93.         $mensaje.="Con un fichero adjunto llamado ".$archivo_name;
  94.        }
  95.        $mensaje.="</p>";
  96.            echo $mensaje;
  97.  
  98.  
  99.     }
  100.     // Borro las direcciones de destino establecidas anteriormente
  101.         $mail->ClearAddresses();
  102.    
  103.    
  104.     echo "<a href='$PHP_SELF'> VOLVER AL FORMULARIO</a>";
  105. }
  106. ?>
__________________
Say no more.......