Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/01/2011, 17:52
jesusjj
 
Fecha de Ingreso: noviembre-2007
Mensajes: 154
Antigüedad: 17 años
Puntos: 2
Respuesta: Todo tipo de problemas con PHPMailer

En principio, por eso mismo me decidí a utilizar la librería, por seguridad, pero no sé si por los servidores de prueba, o por el código, o incluso por errores de incompatibilidad en el mismo PHPMailer, no hay forma de estabilizarla.

Como servidores para pruebas utilizo, en local, WAMP; y en la Red, 1and1.es.

El código ahora se encuentra de la siguiente manera:
Código PHP:
Ver original
  1. <?php
  2.  
  3. require_once('libs/phpmailer.inc.php');
  4. require_once('constantes.php');
  5.  
  6.  
  7. echo "1.<br>";
  8.  
  9. if(isset($_POST['f_contacto'])) { // comprobamos si se trata de la recepción del formulario
  10. echo "2.<br>";
  11.  
  12.     $nombre = $_POST['nombre'];
  13.     $apellidos = $_POST['apellidos'];
  14.     $tfno = $_POST['tfno'];
  15.     $mailTo = $_POST['mailTo'];
  16.     $f_mensaje = $_POST['f_mensaje'];
  17.     $imSize = $_POST['MAX_FILE_SIZE'];
  18.        
  19.     // recogemos el fichero en la variable  
  20.     $fichero = $_FILES['imagen']['name'];
  21.     $fichero_1 = $_FILES['imagen'];
  22.     $fichero_pre = $fichero_1 ['tmp_name'];
  23.    
  24.     $allowedExtensions = array("jpg", "jpeg", "gif", "png", "doc", "pdf");
  25.     $tipo = end(explode('.',$fichero));
  26.        
  27.     // definimos la referencia
  28.     $referencia = str_replace(' ','',$nombre).str_replace(' ','',$apellidos).'_'.date('Ymd').'_'.date('His');
  29.    
  30.     //creamos nombre de la imagen
  31.     $n_imagen = $referencia.'.'.$tipo;
  32.    
  33.     $destino = '../../../uploaded_files/'.$n_imagen;
  34.    
  35.     if(in_array($tipo,$allowedExtensions)) {
  36. echo "3.<br>";        
  37.        
  38.         if(is_uploaded_file($_FILES['imagen']['tmp_name'])){                            // verificamos si se ha subido el fichero
  39. echo "4.<br>";
  40.            
  41.             if($_FILES['imagen']['size'] > $imSize) {
  42. echo "4b.<br>";
  43.                 echo "El tama&ntilde;o supera el m&aacute;ximo permitido de 3MB";                
  44.                
  45.             }else{
  46.                
  47.                 if(@copy($_FILES['imagen']['tmp_name'],$destino)) {
  48. echo "5.<br>";
  49.                            
  50.                 $mensaje = '<b>FORMULARIO RECIBIDO</b><br>';
  51.                 $mensaje .= '<b>Ref: '.$referencia.'</b><br>';
  52.                 $mensaje .= 'Se ha recibido un formulario con la siguiente informaci&oacute;n:<br>';
  53.                 $mensaje .= '<b>Nombre:</b> '.$nombre.'<br>';
  54.                 $mensaje .= '<b>Apellidos:</b> '.$apellidos.'<br>';
  55.                 $mensaje .= '<b>Tel&eacute;fono:</b> '.$tfno.'<br>';
  56.                 $mensaje .= '<b>Mail:</b> '.$mailTo.'<br>';
  57.                 $mensaje .= '<b>Nombre Fichero Original:</b> '.$fichero.'<br>';
  58.                 $mensaje .= '<b>Nombre Fichero:</b> '.$n_imagen.'<br>';
  59.                 $mensaje .= '<b>Ruta Imagen: </b>'.$destino.'<br>';
  60.                 $mensaje .= '<b>Mensaje:</b> '.$f_mensaje;
  61.                
  62.                 echo $mensaje;
  63.                
  64.                 $intentos = 0;                                                                // contador de intentos
  65.    
  66.                 $mail = new phpmailer();                                                      // se instancia la clase, para crear el mail
  67.                
  68.                 $mail->Plugindir = 'libs/';                              // definimos el plugin smtp
  69.                
  70.                 $mail->Mailer = 'mail';
  71.                 $mail->From = '[email protected]';                                      // dirección de envío
  72.                 $mail->FromName = 'Nombre';                                               // nombre del remitente
  73.                 $mail->Sender = $mailTo;
  74.                 $mail->Timeout = 120;                                                       // se ajusta el timeout a 120
  75.                 if($fichero != 'none') {
  76.                     $mail->AddAttachment($destino);//, $n_imagen);                              // añadimos el archivo adjunto              
  77.                 }    
  78.                 $mail->AddAddress('[email protected]','jesus');                          // dirección de destino
  79.                 $mail->Subject = 'Solcitud de información web - Ref: '.utf8_decode($referencia);         // asunto del mail
  80.                 $mail->Body = $mensaje;                                                     // mensaje HTML
  81.                 $mail->WordWrap = 50;
  82.                 $mail->IsHTML(true);
  83.                 $respuesta = $mail->Send();                                                     // envío del mail    
  84.                
  85.     //            while((!$exito) && ($intentos < 5)) {
  86.     //                sleep(5);
  87.     //                $exito = $mail->Send();
  88.     //                $intentos = $intentos + 1;
  89.     //            }
  90.    
  91.                
  92.                 if(!$respuesta) {
  93.                     echo "<p>No se ha podido enviar el mail, int&eacute;ntelo de nuevo m&aacute;s tarde.</p>";
  94.                     echo "<p>Muchas Gracias</p>";                
  95.                
  96.                 }else{
  97.                     echo "<p>El mail se ha enviado correctamente</p>";
  98.                     echo "<p>Muchas Gracias</p>";
  99.                 }
  100.  
  101.         }else{
  102. echo "6.<br>";        
  103.             echo "Error al crear el fichero";
  104.         }  
  105.             }
  106.    
  107.         }else{
  108. echo "7.<br>";
  109.           echo 'Error al subir el fichero';  
  110.        
  111.         }
  112.        
  113.     }else{
  114. echo "8.<br>";
  115.         echo '<p>Archivo no permitido. Los tipos de archivo permitidos son:</p>';
  116.         echo '<p>jpg - jpeg - gif - png - doc - pdf</p>';
  117.        
  118.     }
  119.  
  120. }else{
  121. echo "9.<br>";
  122.     echo "Ha ocurrido un error al enviar el mail. Reint&eacute;ntelo de nuevo m&aacute;s tarde.";    
  123. }
  124.  
  125. ?>

Para el smtp he desisitido por los problemas de conexión con el socket y eso que utilizo gmail.

Muchas gracias de nuevo