Foros del Web » Programando para Internet » PHP »

PhpMailer problemas de envio

Estas en el tema de PhpMailer problemas de envio en el foro de PHP en Foros del Web. Cordial Saludo, no he podido enviar correos por PhpMailer, la verdad no se que es lo que esta sucediendo les pido su colaboracion pues lo ...
  #1 (permalink)  
Antiguo 20/12/2014, 22:09
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
PhpMailer problemas de envio

Cordial Saludo, no he podido enviar correos por PhpMailer, la verdad no se que es lo que esta sucediendo les pido su colaboracion pues lo pruebo y modifico aqui, alla pero no lo consigo, el codigo phpMailer es el mismo que todos descargamos asi que no lo anexe.

Anexo un codigo de prueba con un formulario sencillo de Correo, Asunto y Mensaje, en el segundo script esta el codigo con las configuraciones que tengo en hostinger, aclaro que la contraseña la cambie para efecto de seguridad mia.
El codigo funciona si le quito los function y que solo quede en variables pero seria de gran ayuda tenerlo como debe ser, en funciones para su implementacion.

Gracias a todos

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <?php
  4. require("Envio_Correo.php");
  5. ini_set("display_errors", 1);
  6.  
  7.  ?>
Código HTML:
Ver original
  1. </head>
  2.     <body>
  3.         <form action="" method="POST">
  4.        <!-- <ul>
  5.            <li> -->
  6.         <label> Emails </label>
  7.         <input type="text" name="texto" ></input>
  8.            <!-- </li>
  9.            <li> -->        
  10.         <label> Asunto </label>
  11.         <input type="text" name="asunto"></input>
  12.            <!-- </li>
  13.            <li>-->        
  14.         <label> Mensaje </label>
  15.         <input type="text" name="mensaje"></input>
  16.         <input type="submit"  name="btn_enviar" value="Agregar Correos" ></input>  
  17.          <!-- </li>        
  18.        </ul> -->        
  19.         </form>
  20.     </body>


Código PHP:
Ver original
  1. <?php
  2.  
  3.             if(isset($_POST['boton'])){
  4.                 global $array;
  5.                 $correo = $_POST['texto'];
  6.                 $asunto = $_POST['asunto'];
  7.                 $msn = $_POST['mensaje'];
  8.                 $array[] = $correo;
  9.                 $email = new Envio_Correo();
  10.                 $email->Mensaje_asunto($asunto);
  11.                 $email->Mensaje_factura($msn);
  12.                 $email->Agregar_direcciones($array);  
  13.                 $email->Send();  
  14.                 echo var_dump($email->Listar_errores());
  15.  
  16.                
  17.             }
  18.  
  19.            
  20.         ?>
<<<<<< Envio_Correo.php >>>>>
Código PHP:
Ver original
  1. <?php
  2. require "class.phpmailer.php";
  3.  
  4.     class Envio_Correo {
  5.  
  6.        public $array_direcciones ;
  7.        public $error = "";
  8.        public $mail = null;
  9.        function __construct(){  
  10.         $this->mail = new phpmailer();
  11.         $this->mail->PluginDir = ""; //"includes/";
  12.         $this->mail->Mailer = "smtp";
  13.         $this->mail->Host = "mx1.hostinger.co";
  14.         $this->mail->SMTPAuth = true;
  15.         $this->mail->Username = "[email protected]";
  16.         $this->mail->Password = "123456";
  17.         $this->mail->Port = 2525;
  18.         $this->mail->From = "[email protected]";
  19.         $this->mail->FromName = "Web Ecommerce..";
  20.      // $mail->Subject = "";
  21.   //    $mail->Body ="";
  22.     //  $mail->AddAddress = "";
  23.         $this->mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto";
  24.        
  25.         $this->mail->Timeout=120;
  26.        
  27.        }
  28.         function Mensaje_asunto($msg){
  29.             $this->mail->Subject = $msg;
  30.         }
  31.  
  32.         function Mensaje_factura($msg){
  33.             $this->Body = $msg;
  34.         }
  35.      
  36.         function Mensaje_activacion($msg){
  37.             $this->Body = $msg;
  38.         }
  39.  
  40.         function Mensaje_promosional($msg){
  41.             $this->Body = $msg;
  42.         }
  43.  
  44.         function Mensaje_informativo($msg){
  45.             $this->Body = $msg;
  46.         }
  47.  
  48.         function Agregar_direcciones($direcciones){
  49.            $this->$array_direcciones = $direcciones;
  50.         }
  51.  
  52.         function Send(){
  53.           global $array_direcciones;
  54.           reset($this->array_direcciones);
  55.           while (list($clave, $valor)=each($this->array_direcciones)) {
  56.             $this->mail->AddAddress($valor);
  57.             $exito = $this->mail->Send();
  58.             $intentos = 1;
  59.             while((!$exito)&&($intentos<5)&&($this->mail->ErrorInfo!="SMTP Error: Data not accepted")){
  60.               sleep(5);
  61.               //echo $mail->ErrorInfo;
  62.               $exito = $this->mail->Send();
  63.               $intentos=$intentos+1;      
  64.             }
  65.             if ($this->mail->ErrorInfo=="SMTP Error: Data not accepted") {
  66.               $exito=true;
  67.               $this->error[] = $this->mail->ErrorInfo;
  68.             }
  69.             if(!$exito){
  70.               echo "Problemas enviando correo electrónico a ".$valor;
  71.               echo "<br/>".$this->mail->ErrorInfo;
  72.             }else{
  73.               $mensaje="<p>Has enviado un mensaje a:<br/>";
  74.               $mensaje.=$valor." ";
  75.               if ($archivo !="none") {
  76.                 $mensaje.="Con un fichero adjunto llamado ".$archivo_name;
  77.               }
  78.               $mensaje.="</p>";
  79.                 echo $mensaje;
  80.             }
  81.               $this->mail->ClearAddresses();
  82.           }
  83.       }
  84.       function Listar_errores(){
  85.         return $this->$error;
  86.       }
  87.   }
  88.      
  89.    
  90.    
  91.  
  92.    
  93. ?>
  #2 (permalink)  
Antiguo 20/12/2014, 22:19
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: PhpMailer problemas de envio

Bueno, cambie algunas cosas en la validacion del boton no concordaba con el nombre del atributo name del input, lo cambie y me generaba error en la linea 50 que apunta en esta funcion
Código PHP:
Ver original
  1. function Agregar_direcciones($direcciones){
  2.            $this->$array_direcciones = $direcciones;
  3.         }
asi que lo cambie a
Código PHP:
Ver original
  1. array_push($array_direcciones, $direcciones) ;
Siendo el $array_direcciones el array y direcciones lo que se guarda en el array pero sigue apareciendo error, aqui esta la web de prueba, por favor colaborarme ... http://webpruebamail.esy.es/ estoy un poco estancado en esto.. Gracias
  #3 (permalink)  
Antiguo 21/12/2014, 06:43
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 1 mes
Puntos: 0
Respuesta: PhpMailer problemas de envio

Bueno gente... Ya no genera error pero si genera el
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at [email protected] to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

He buscado registro de log en el servidor pero no muestra nada.

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <?php
  4. require("Envio_Correo.php");
  5. ini_set("display_errors", 1);
  6.  
  7.  ?>
  8. </head>
  9.     <body>
  10.         <form action="" method="POST">
  11.        <!-- <ul>
  12.             <li> -->
  13.         <label> Emails </label>
  14.         <input type="text" name="texto" ></input>
  15.            <!-- </li>
  16.             <li> -->        
  17.         <label> Asunto </label>
  18.         <input type="text" name="asunto"></input>
  19.            <!-- </li>
  20.             <li>-->        
  21.         <label> Mensaje </label>
  22.         <input type="text" name="mensaje"></input>
  23.         <input type="submit"  name="btn_enviar" value="Agregar Correos" ></input>  
  24.          <!-- </li>        
  25.         </ul> -->        
  26.         </form>
  27.     </body>
  28.  
  29.        
  30. <?php
  31.  
  32.             if(isset($_POST['btn_enviar'])){
  33.                 global $array;
  34.                 $correo = $_POST['texto'];
  35.                 $asunto = $_POST['asunto'];
  36.                 $msn = $_POST['mensaje'];
  37.                 $array[] = $correo;
  38.                 $email = new Envio_Correo();
  39.                 $email->Mensaje_asunto($asunto);
  40.                 $email->Mensaje_factura($msn);
  41.                 $email->Agregar_direcciones($array);  
  42.                 $email->Send();  
  43.      
  44.             }
  45.          
  46.         ?>
  47.  
  48.  
  49. </html>
  50.  
  51. -----------------------------------------------------------------------
  52. <?php
  53. require "class.phpmailer.php"; <------ se encuentra en el mismo directorio de las clase que estan aqui
  54.  
  55.     class Envio_Correo {
  56.  
  57.        public $array_direcciones;
  58.        public $error;
  59.        public $mail = null;
  60.        function __construct(){  
  61.         $this->mail = new phpmailer();
  62.         $array_direcciones = array();
  63.         $error =  array();
  64.         $this->mail->PluginDir = ""; //"includes/";
  65.         $this->mail->Mailer = "smtp";
  66.         $this->mail->Host = "mx1.hostinger.co";
  67.         $this->mail->SMTPAuth = false;
  68.         $this->mail->Username = "[email protected]";
  69.         $this->mail->Password = "xxxxxxx";
  70.         $this->mail->Port = 2525;
  71.         $this->mail->From = "[email protected]";
  72.         $this->mail->FromName = "Web Ecommerce..";
  73.         $this->mail->AltBody ="Mensaje de prueba mandado con phpmailer en formato texto";
  74.         $this->mail->Timeout=120;
  75.        }
  76.         function Mensaje_asunto($msg){
  77.             $this->mail->Subject = $msg;
  78.         }
  79.  
  80.         function Mensaje_factura($msg){
  81.             $this->Body = $msg;
  82.         }
  83.      
  84.         function Mensaje_activacion($msg){
  85.             $this->Body = $msg;
  86.         }
  87.  
  88.         function Mensaje_promosional($msg){
  89.             $this->Body = $msg;
  90.         }
  91.  
  92.         function Mensaje_informativo($msg){
  93.             $this->Body = $msg;
  94.         }
  95.  
  96.         function Agregar_direcciones($direcciones){
  97.  
  98.            $this->array_direcciones = $direcciones ;
  99.         }
  100.  
  101.         function Send(){
  102.    
  103.           reset($this->array_direcciones);
  104.           while (list($clave, $valor)=each($this->array_direcciones)) {
  105.             $this->mail->AddAddress($valor);
  106.             $exito = $this->mail->Send();
  107.             $intentos = 1;
  108.             while((!$exito)&&($intentos<5)&&($this->mail->ErrorInfo!="SMTP Error: Data not accepted")){
  109.               sleep(5);
  110.               $exito = $this->mail->Send();
  111.               $intentos=$intentos+1;      
  112.             }
  113.             if ($this->mail->ErrorInfo=="SMTP Error: Data not accepted") {
  114.               $exito=true;
  115.               array_push($error,$this->mail->ErrorInfo);
  116.             }
  117.             if(!$exito){
  118.               echo "Problemas enviando correo electrónico a ".$valor;
  119.               echo "<br/>".$this->mail->ErrorInfo;
  120.             }else{
  121.               $mensaje="<p>Has enviado un mensaje a:<br/>";
  122.               $mensaje.=$valor." ";
  123.               if ($archivo !="none") {
  124.                 $mensaje.="Con un fichero adjunto llamado ".$archivo_name;
  125.               }
  126.               $mensaje.="</p>";
  127.                 echo $mensaje;
  128.             }
  129.               $this->mail->ClearAddresses();
  130.           }
  131.       }
  132.    
  133.   }
  134.      
  135.  
  136. ?>
  #4 (permalink)  
Antiguo 22/12/2014, 10:02
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: PhpMailer problemas de envio

Deberías enviarlo desde un servidor que si pueda enviar mails...
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...

Etiquetas: html, phpmailer
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 20:06.