jueves, 7 de agosto de 2014

Clase Email PHPMailer - Codeigniter

Todos hemos visto que casi el 100% de las páginas web, tienen algún sistema de correo electrónico implementado, a pesar de que es un servicio muy útil y cómodo, también es un servicio muy fácil de implementar.

En siguiente ejemplo es el código que necesitamos para implementar un sistema de email.
Simplemente copiando y pegando, y modificando los parámetros por los que necesitéis ya tendréis un sistema de email basado en Codeigniter.


Antes de todo tendríamos que descargar las librerías de PHPMailer desde la web.
Descargar

Una vez tenemos descargado los ficheros, los copiamos dentro de la carpeta third_party, que se encuentra dentro de nuestra aplicación.

Seguidamente creamos nuestra librería que cargará la librería PHPMailer en nuestro proyecto.

require_once APPPATH."/third_party/PHPMailer/class.phpmailer.php"; 
 
class My_PHPMailer extends PHPMailer { 
    public function __construct() { 
        parent::__construct(); 
    } 
}

Este código lo deberemos de guardar en la carpeta libraries con el nombre de: my_phpmailer.php

Definitivamente este es el código que deberemos de poner en nuestro controlador.


$textEmail = "<p>Contenido del <i>email</i> en formato <b>html</b></p>";
  
$this->load->library('my_phpmailer');

$this->my_phpmailer->IsSMTP(); // establecemos que utilizaremos SMTP
$this->my_phpmailer->IsHTML(true); // indicamos si el contenido es en html
$this->my_phpmailer->SMTPAuth   = true;
$this->my_phpmailer->Host       = ""; //indicar el servidor smtp
$this->my_phpmailer->Port       = 25; //normalmente es el 25                 
$this->my_phpmailer->Username   = ""; //usuario smtp
$this->my_phpmailer->Password   = ""; //password      
$this->my_phpmailer->SetFrom('cuenta@correo.es', "Alias del correo");  
$this->my_phpmailer->Subject    = "Subject"; 
$this->my_phpmailer->Body      = $textEmail;
   
$this->my_phpmailer->AddAddress("dirección de correo", "Alias");
$this->my_phpmailer->AddCC("dirección en copia", 'Alias');

if(!$this->my_phpmailer->Send()) {
 log_message('info', "error envía de email" . $this->my_phpmailer->ErrorInfo);
} else {
 log_message('info', "enviado correctamente");
   }

Como podéis comprobar carga la librería que hemos creado que es la que se encarga de cargar las clases de PHPMailer, y nos permite utilizar esta clase como si fuera una librería interna de Codeigniter, con la misma sintaxis.

$this->my_phpmailer //llamando al método que nos interese



No hay comentarios:

Publicar un comentario