Código PHP:
Ver original
include ('conexion.php'); //Recibimos las variables $codigo = $_POST['codigo']; $email = $_POST['email']; $libro = $_POST['libro']; //Desechamos el código $update = "UPDATE primer_ttiraje SET activo = '1' WHERE codigo ='$codigo'"; $update2 = "UPDATE primer_ttiraje SET libro = '$libro' WHERE codigo ='$codigo' "; //Enviamos el libro por correo: if ($libro =='1') { // primero hay que incluir la clase phpmailer para poder instanciar //un objeto de la misma require "PHPMailer/class.phpmailer.php"; //instanciamos un objeto de la clase phpmailer al que llamamos //por ejemplo mail $mail = new phpmailer(); //Definimos las propiedades y llamamos a los métodos //correspondientes del objeto mail //Con PluginDir le indicamos a la clase phpmailer donde se //encuentra la clase smtp que como he comentado al principio de //este ejemplo va a estar en el subdirectorio includes $mail->PluginDir = "PHPMailer/"; //Con la propiedad Mailer le indicamos que vamos a usar un //servidor smtp $mail->Mailer = "smtp"; //Asignamos a Host el nombre de nuestro servidor smtp $mail->Host = "smtp.gmail.com"; $mail->Port = 587; //Definmos la seguridad como TLS $mail->SMTPSecure = 'tls'; //Le indicamos que el servidor smtp requiere autenticación $mail->SMTPAuth = true; //Le decimos cual es nuestro nombre de usuario y password $mail->Username = "****@crmbusiness.biz"; $mail->Password = "buckdich"; //Indicamos cual es nuestra dirección de correo y el nombre que //queremos que vea el usuario que lee nuestro correo $mail->FromName = "The Matrix Thinking"; //Asignamos asunto y cuerpo del mensaje //El cuerpo del mensaje lo ponemos en formato html, haciendo //que se vea en negrita $mail->Subject = "Libro Piensa en lo Nuevo"; $mail->Body = "<b>Acabas de recibir el libro Piensa en lo Nuevo en formato pdf, descargalo y disfruta tu lectura.</b>"; //Definimos AltBody por si el destinatario del correo no admite //email con formato html $mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto"; //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar //una cuenta gratuita y voy a usar attachments, por tanto lo pongo a 120 $mail->Timeout=120; //Indicamos el fichero a adjuntar si el usuario seleccionó uno en el formulario $mail->AddAttachment('/webroot/matrix/beta2/zte45m8Ih/Piensa_en_Lo_Nuevo/libro.pdf'); //Indicamos cuales son las direcciones de destino del correo y enviamos //los mensajes //reset($direcciones); //while (list($clave, $valor)=each($direcciones)) { $mail->AddAddress($email); //se envia el mensaje, si no ha habido problemas la variable $success //tendra el valor true $exito = $mail->Send(); //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas //como mucho para intentar enviar el mensaje, cada intento se hara 5 s //segundos despues del anterior, para ello se usa la funcion sleep $intentos=1; while((!$exito)&&($intentos<5)&&($mail->ErrorInfo!="SMTP Error: Data not accepted")){ //echo $mail->ErrorInfo; $exito = $mail->Send(); $intentos=$intentos+1; } //La clase phpmailer tiene un pequeño bug y es que cuando envia un mail con //attachment la variable ErrorInfo adquiere el valor Data not accepted, dicho //valor no debe confundirnos ya que el mensaje ha sido enviado correctamente if ($mail->ErrorInfo=="SMTP Error: Data not accepted") { $exito=true; } if(!$exito) { echo "Problemas enviando correo electrónico a ".$valor; echo "<br/>".$mail->ErrorInfo; } else { //Mostramos un mensaje indicando las direccion de //destino y fichero adjunto enviado en el mensaje $mensaje="<p>Has enviado un mensaje a:<br/>"; $mensaje.=$valor." "; if ($archivo !="none") { $mensaje.="Con un fichero adjunto llamado ".$archivo_name; } $mensaje.="</p>"; echo $mensaje; } // Borro las direcciones de destino establecidas anteriormente $mail->ClearAddresses(); echo "<a href='$PHP_SELF'> VOLVER AL FORMULARIO</a>"; } ?>
Pero al ejecutarlo me da estos errores
Cita:
Could not access file: /webroot/matrix/beta2/zte45m8Ih/Piensa_en_Lo_Nuevo/libro.pdf SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. SMTP Error: Could not connect to SMTP host. Problemas enviando correo electrónico a
SMTP Error: Could not connect to SMTP host
SMTP Error: Could not connect to SMTP host