Cómo enviar correo electrónicomail usando CodeIgniter

Email Es muy importante en las aplicaciones web. Cuando un usuario se registra, es posible que queramos enviarle un correo electrónico.mail para verificar su email dirección y permitir al usuario confirmar la suscripción. También usamos email para restablecer contraseñas olvidadas, enviar facturas y recibos a clientes, etc. CodeIgniter hace que sea muy fácil para nosotros enviar correos electrónicosmails desde nuestra aplicación utilizando una variedad de opciones.

CodeIgniter tiene una función email biblioteca con la que podemos trabajar al enviar emails.

CódigoIgniter Email Configuración

Necesitamos tener un lugar central donde podamos gestionar la email ajustes. CodeIgniter no viene con un archivo de configuración para emailEntonces tendremos que crear uno nosotros mismos.

Crear un archivo email.php en el directorio aplicación/config

Agrega el siguientewing código para 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' => 'no-reply@example.com',
    '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Í,

  • 'protocol' => 'smtp', especifica el protocolo que desea utilizar al enviar correo electrónicomail. Este podría ser G.mail configuración smtp o configuración smtp de su host
  • 'smtp_host' => 'smtp.example.com', especifica el host smtp. Por ejemplo, si desea utilizar Gmail entonces tendrías algo como smtp.gmail.com
  • 'smtp_port' => 465, un puerto abierto en el host smtp especificado que se ha configurado para smtp mail
  • 'smtp_user' => 'no-reply@example.com', la email dirección que se utilizará como remitente al enviar el correo electrónicomails. Esta debería ser una e válida.mail dirección que existe en el servidor
  • 'smtp_pass' => '12345!', la contraseña del usuario smtp especificado email
  • 'smtp_crypto' => 'ssl', especifica el método de cifrado que se utilizará, es decir, ssl, tls, etc.
  • 'email tipo' => 'texto', establece el mail tipo a utilizar. Puede ser texto sin formato o HTML, según sus necesidades.
  • 'smtp_timeout' => '4', especifica el tiempo en segundos que debe transcurrir al intentar conectarse al host antes de que se produzca una excepción de tiempo de espera.
  • ‘charset’ => ‘iso-8859-1’, define el juego de caracteres que se utilizará al enviar emails.
  • 'Wrap' => TRUE se establece en TRUE y luego se habilita el ajuste de palabras. Si se establece en FALSO, entonces el ajuste de palabras no está habilitado

Note: para enviar emailPara que funcione, debe proporcionar parámetros de configuración válidos. Los parámetros ficticios no podrán enviar emails.

CódigoIgniter Email Ver

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

Crear un nuevo directorio email en aplicación/vistas

Crea un nuevo archivo contact.php aplicación/views/email

Agrega el siguientewing código a aplicación/vistas/email/contacto.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Í,

  • Tenemos un formulario HTML básico que acepta la email, asunto y mensaje luego pasan los parámetros a email ruta.

CódigoIgniter Email Regulador

Ahora creemos el controlador que manejará el envío de email

Crear un nuevo archivo EmailController.php en aplicación/controladores/Emailcontroller.php

Agrega el siguientewing 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("\r\n");
        $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Í,

  • clase EmailEl controlador extiende CI_Controller {…} define nuestra email controlador que expande el controlador principal CodeIgniter.
  • La función pública __construct() {…} define el constructor secundario que llama al método constructor principal.
  • función pública index() {…} define el método de índice que muestra el formulario de contacto
  • function send() {…} define el método que envía el email
    • $this->cargar->config('email'); carga la email ajustes de configuración
    • $this->cargar->biblioteca('email'); carga la email bibliotecas
    • $desde = $this->config->item('smtp_user'); obtiene la identificación del remitente de la email archivo de configuración que definimos.
    • $a = $this->entrada->post('a'); obtiene el valor del formulario enviado
    • $asunto = $this->entrada->post('asunto'); establece la email sometido desde la forma
    • $mensaje = $this->entrada->post('mensaje'); establece la email mensaje del formulario
    • $esto->email->set_newline(“\r\n”); define los caracteres de nueva línea para emails
    • $esto->email->desde($desde); establece el remitente email dirección
    • $esto->email->a($a); establece el destinatario email dirección
    • $esto->email->asunto($asunto); establece la email sujeto
    • $esto->email->mensaje($mensaje); establece la email mensaje
    • si ($this->email->send()) {…} intenta enviar el email. si el email se envía exitosamente, entonces el mensaje Your Email se ha enviado correctamente; de ​​lo contrario, se imprime información de depuración sobre lo que podría haber salido mal.

Definamos ahora la email rutas

Email Rutas

Agrega el siguientewing rutas a application/config/routes.php

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

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

Iniciemos 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:\Sites\ci-app

inicie el servidor usando el siguientewing comando

php -S localhost:3000

Cargar el siguientewing URL en su navegador web: http://localhost:3000/send-email

Deberías poder ver el siguientewing formulario

Email Rutas

Introduzca el destinatario email, sujeto y email mensaje y luego haga clic en Enviar Email. Si eresmail las configuraciones están configuradas correctamente, entonces debería poder ver el mensaje exitoso.

Resumen

El e incorporadomail La biblioteca nos facilita el envío de correos electrónicos.mails con código mínimo. La biblioteca también es muy flexible en el sentido de que puede configurarla para satisfacer sus necesidades.