Saltar al contenido

Cómo integrar PHPMailer con Codeigniter 3

Hola usuario de nuestro sitio web, encontramos la solución a tu pregunta, desplázate y la verás más abajo.

Solución:

aquí hay una guía

1. instalación de PHP Mailer

Descargue la última compilación de PHPMailer de Github. Puedes encontrar el proyecto aquí

Haga clic ahora en “clonar o descargar” y descárguelo como zip, como se muestra en la imagen de abajo.
Descarga PHP Mailer como ZIP

La carpeta en el zip se llama PHPMailer-master. Descomprima esto en su carpeta application / third_party / y cambie el nombre de la carpeta a phpmailer. Debería ver algo como esto
ingrese la descripción de la imagen aquí

2. Biblioteca de correo de PHP

En mi humilde opinión, es mejor crear una biblioteca que maneje su objeto PHPMailer (Phpmailer_library.php) Esta biblioteca podría verse como

class Phpmailer_library

    public function __construct()
    
        log_message('Debug', 'PHPMailer class is loaded.');
    

    public function load()
    
        require_once(APPPATH."third_party/phpmailer/PHPMailerAutoload.php");
        $objMail = new PHPMailer;
        return $objMail;
    

3. Usando esta biblioteca en uno de sus controladores, modelos, etc.

class Welcome extends CI_Controller 


    public function index()
    
        $this->load->library("phpmailer_library");
        $objMail = $this->phpmailer_library->load();
    

Creo que esto debería hacer el trabajo. Si tiene algún problema, no dude en preguntar;)


Actualización 25.06.2018

Dado que los chicos de PHPMailer eliminaron el cargador automático, ahora tiene dos opciones:

1.) a través de Composer

para aquellos que no lo sabían, Codeigniter es compatible con Composer, simplemente tiene que activar la carga automática, puede encontrar esto en su config.php

$config['composer_autoload'] = true;

Para obtener más información, eche un vistazo aquí.

Después de eso, ejecuta el compositor como

composer require phpmailer/phpmailer

Ahora deberías tener dentro de tu application/vendor carpeta el phpmailer archivos.

La biblioteca debería verse como

class Phpmailer_library

    public function __construct()
    
        log_message('Debug', 'PHPMailer class is loaded.');
    

    public function load()
    
        $objMail = new PHPMailerPHPMailerPHPMailer();
        return $objMail;
    

2.) descargar

sigue el paso 1

La biblioteca debería verse como

class Phpmailer_library

    public function __construct()
    
        log_message('Debug', 'PHPMailer class is loaded.');
    

    public function load()
    
        require_once(APPPATH.'third_party/phpmailer/src/PHPMailer.php');
        require_once(APPPATH.'third_party/phpmailer/src/SMTP.php');

        $objMail = new PHPMailerPHPMailerPHPMailer();
        return $objMail;
    

y todo lo demás debería permanecer igual

**

ACTUALIZACIÓN AGOSTO 2019

**

Al principio, descargue los archivos de la biblioteca PHPMailer más recientes y coloque todos los archivos en la carpeta application / third_party / de su aplicación CodeIgniter.

Ahora, cree una biblioteca (aplicación / bibliotecas / Phpmailer_lib.php) para manejar el objeto PHPMailer.

  • Incluya los archivos de la biblioteca PHPMailer.
  • Inicialice la clase PHPMailer.
  • Devuelve el objeto PHPMailer.

    use PHPMailerPHPMailerPHPMailer;
    use PHPMailerPHPMailerException;
    class PHPMailer_Lib
    
    public function __construct()
        log_message('Debug', 'PHPMailer class is loaded.');
    
    
    public function load()
        // Include PHPMailer library files
        require_once APPPATH.'third_party/phpmailer/Exception.php';
        require_once APPPATH.'third_party/phpmailer/PHPMailer.php';
        require_once APPPATH.'third_party/phpmailer/SMTP.php';
    
        $mail = new PHPMailer(true);
        return $mail;
    
    
    

Ahora envíe un correo electrónico a través del servidor SMTP usando PHPMailer desde su controlador usando este código.

class Email extends CI_Controller

    function  __construct()
        parent::__construct();
    

    function send()
        // Load PHPMailer library
        $this->load->library('phpmailer_lib');

        // PHPMailer object
        $mail = $this->phpmailer_lib->load();

        // SMTP configuration
        $mail->isSMTP();
        $mail->Host     = 'smtp.example.com';
        $mail->SMTPAuth = true;
        $mail->Username = '[email protected]';
        $mail->Password = '********';
        $mail->SMTPSecure = 'ssl';
        $mail->Port     = 465;

        $mail->setFrom('[email protected]', 'CodexWorld');
        $mail->addReplyTo('[email protected]', 'CodexWorld');

        // Add a recipient
        $mail->addAddress('[email protected]');

        // Add cc or bcc 
        $mail->addCC('[email protected]');
        $mail->addBCC('[email protected]');

        // Email subject
        $mail->Subject = 'Send Email via SMTP using PHPMailer in CodeIgniter';

        // Set email format to HTML
        $mail->isHTML(true);

        // Email body content
        $mailContent = "

Send HTML Email using SMTP in CodeIgniter

This is a test email sending using SMTP mail server with PHPMailer.

"; $mail->Body = $mailContent; // Send email if(!$mail->send()) echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; else echo 'Message has been sent';

Recuerda que puedes dar difusión a esta noticia si te valió la pena.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *