Saltar al contenido

Cómo enviar un correo electrónico usando CodeIgniter

El correo electrónico es muy importante en las aplicaciones web. Cuando un usuario se registra, es posible que deseemos enviarle un correo electrónico para verificar su dirección de correo electrónico y permitir que el usuario confirme una suscripción. También utilizamos el correo electrónico para restablecer contraseñas olvidadas, enviar facturas y recibos a los clientes, etc. CodeIgniter nos facilita el envío de correos electrónicos desde nuestra aplicación utilizando varias opciones.

CodeIgniter tiene una biblioteca de correo electrónico incorporada con la que podemos trabajar al enviar correos electrónicos.

En este tutorial, aprenderá

Configuración de correo electrónico de CodeIgniter

Necesitamos tener un lugar central donde podamos administrar la configuración del correo electrónico. CodeIgniter no viene con un archivo de configuración para correos electrónicos, por lo que tendremos que crear uno nosotros mismos.

Cree un archivo email.php en el directorio de aplicación / configuración

Agregue el siguiente código a email.php


<?php defined('BASEPATH') OR exit('No direct script access allowed');

$config = array(
    'protocol' => 'smtp', // 'mail', 'sendmail', or 'smtp'
    'smtp_host' => 'smtp.example.com', 
    'smtp_port' => 465,
    'smtp_user' => This email address is being protected from spambots. You need JavaScript enabled to view it.',
    'smtp_pass' => '12345!',
    'smtp_crypto' => 'ssl', //can be 'ssl' or 'tls' for example
    'mailtype' => 'text', //plaintext 'text' mails or 'html'
    'smtp_timeout' => '4', //in seconds
    'charset' => 'iso-8859-1',
    'wordwrap' => TRUE
);

AQUÍ,

Nota: para enviar correos electrónicos al trabajo, debe proporcionar parámetros de configuración válidos. Los parámetros ciegos no podrán enviar correos electrónicos.

Ver correo electrónico de CodeIgniter

En esta sección, crearemos la vista que el correo electrónico enviará al destinatario.

Cree un nuevo directorio de correo electrónico en la aplicación / comentarios

Cree una nueva aplicación contact.php application / views / email

Agregue el siguiente código a application / comments / email / contact.php


<!DOCTYPE html>
<html>
    <head>
        <title>CodeIgniter Send Email</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
        <div>
            <h3>Use the form below to send email</h3>
            <form method="post" action="<?=base_url('email')?>" enctype="multipart/form-data">
                <input type="email" id="to" name="to" placeholder="Receiver Email">
                <br><br>
                <input type="text" id="subject" name="subject" placeholder="Subject">
                <br><br>
                <textarea rows="6" id="message" name="message" placeholder="Type your message here"></textarea>
                <br><br>
                <input type="submit" value="Send Email" />
            </form>
        </div>
    </body>
</html>

AQUÍ,

Controlador de correo electrónico CodeIgniter

Ahora creamos el controlador que manejará el envío de correos electrónicos.

Cree un nuevo archivo EmailController.php en la aplicación / controllers / EmailController.php

Agregue el siguiente código a EmailController.php


<?php

defined('BASEPATH') OR exit('No direct script access allowed');

class EmailController extends CI_Controller {

    public function __construct() {
        parent:: __construct();

        $this->load->helper('url');
    }

    public function index() {
        $this->load->view('email/contact');
    }

    function send() {
        $this->load->config('email');
        $this->load->library('email');
        
        $from = $this->config->item('smtp_user');
        $to = $this->input->post('to');
        $subject = $this->input->post('subject');
        $message = $this->input->post('message');

        $this->email->set_newline("rn");
        $this->email->from($from);
        $this->email->to($to);
        $this->email->subject($subject);
        $this->email->message($message);

        if ($this->email->send()) {
            echo 'Your Email has successfully been sent.';
        } else {
            show_error($this->email->print_debugger());
        }
    }
}

AQUÍ,

Definamos los canales de correo electrónico ahora

Maneras de correo electrónico

Agregue las siguientes rutas a la aplicación / config / route.php

$route['send-email'] = 'email controller';
$route['email'] = 'email controller/send';

Ahora podemos cargar el formulario de contactos en el navegador web.

Comencemos con el servidor PHP integrado.

Abra la terminal / línea de comando y busque la raíz de su aplicación. En mi caso, la raíz se encuentra en la unidad C: Sites ci-app

cd C:Sitesci-app

inicie el servidor usando el siguiente comando

php -S localhost:3000

Cargue la siguiente URL en su navegador web

http: // localhost: 3000 / enviar-correo electrónico

Debería poder ver el siguiente formulario

Ingrese el correo electrónico, el asunto y el mensaje de correo electrónico del destinatario y luego haga clic en Enviar correo electrónico. Si sus configuraciones de correo electrónico están configuradas correctamente, entonces debería poder ver el mensaje exitoso.

Resumen

La biblioteca de correo electrónico incorporada nos facilita el envío de correos electrónicos con un código mínimo. La biblioteca también es muy flexible, ya que puede configurarla para satisfacer sus necesidades.

Entradas relacionadas

Deja una respuesta

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