Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/09/2016, 08:35
andres18281
 
Fecha de Ingreso: febrero-2013
Ubicación: Cali Colombia
Mensajes: 118
Antigüedad: 11 años, 2 meses
Puntos: 0
problemas enviando correos phpmailer

Cordial Saludo.
Estoy intentando enviar correos masivos de un blog de noticias tecnologicas donde los articulos se almacena en la base de datos.
Lo que envio es una introduccion sencilla de los primeros textos de cada articulo; esto se almacena en una variable $articulos.

Código PHP:
Ver original
  1. foreach($array as $key=>$val){
  2.  if($key%2 == 0){
  3.    $articulos .= '<div class="col-xs-12  panel panel-default">
  4.                 <h2 style="margin-left:0;padding-top:0px;">'.utf8_encode($val["titulo"]).'</h2>
  5.             <div class="col-xs-5 col-md-3">
  6.               <a href="#" class="thumbnail">
  7.                     <img class="modal-content" src="'.$val["img"].'">
  8.               </a>
  9.             </div>
  10.             <div class="col-xs-7 col-md-9">
  11.               '.utf8_encode($val["texto"]).'
  12.                   <a href="'.$val['id'].'" class="btn btn-danger btn-xs"> Leer mas</a>
  13.                                     </div>
  14.                                   </div>';
  15.                 }else{
  16.                   $articulos .= '<div class="col-xs-12  panel panel-default">
  17.                                    <h2 style="margin-left:0;padding-top:0px;">'.utf8_encode($val["titulo"]).'</h2>
  18.                                     <div class="col-xs-7 col-md-9">
  19.                                         '.utf8_encode($val["texto"]).'
  20.                                       <a href="'.$val["id"].'" class="btn btn-danger btn-xs"> Leer mas</a>
  21.                                     </div>
  22.                                     <div class="col-xs-5 col-md-3">
  23.                                       <a href="#" class="thumbnail">
  24.                                         <img class="modal-content" src="'.$val["img"].'">
  25.                                       </a>
  26.                                     </div>
  27.                                   </div>'; 
  28.                 }
  29.             }

Aqui abajo toma una plantilla que tiene un tipo de marco y en el centro tiene un texto
"%panel__% donde uso el str_replace donde remplazara las cadenas de texto almacenadas en la variable $articulos y parsearlo ahi.

El problema es que al enviar por correo solo se ve el marco, no se observa los articulos.
Probe antes de enviar el correo hacer un echo a la plantilla y observo que la estructura de la pagina esta correcta, el marco y los articulos todo perfecto pero en el correo no.

Pienso que es la codificacion del texto pero para eso uso el utf8_encode y decode y dentro del phpmailer he agregado todas las codificaciones como la iso, utf8 uno que es window. .. no recuerdo bien pero aun sin exito.

Lo que realizo es una peticion ajax a un archivo llamado enviar_correo.php donde hace el echo y se observa por el response la estructura bien, y en donde envia la peticion tengo un echo json_encode y observo que imprime la plantilla con el marco y sin los articulos, tal cual como llega en el correo.
Código PHP:
Ver original
  1. if(file_exists("plantilla.html")){
  2.                 $template = "plantilla.html";
  3. }
  4.             $plantilla = file_get_contents($template);
  5.             $plantilla = str_replace("%panel__%",$articulos,$plantilla);
  6.             echo $plantilla;
  7.             $this->mail->AltBody = $plantilla;
  8.             $this->mail->msgHTML($plantilla);
  9.             $this->mail->Body = $plantilla;