CodeIgniter - Envío de correo electrónico

Enviar correo electrónico en CodeIgniter es mucho más fácil. También configura las preferencias con respecto al correo electrónico en CodeIgniter. CodeIgniter proporciona las siguientes funciones para enviar correos electrónicos:

  • Múltiples protocolos: correo, Sendmail y SMTP
  • Cifrado TLS y SSL para SMTP
  • Varios destinatarios
  • CC y BCC
  • Correo electrónico HTML o de texto sin formato
  • Attachments
  • Ajuste de palabras
  • Priorities
  • Modo BCC Batch, que permite dividir grandes listas de correo electrónico en pequeños lotes BCC.
  • Herramientas de depuración de correo electrónico

La clase de correo electrónico tiene las siguientes funciones para simplificar el trabajo de enviar correos electrónicos.

SN Sintaxis Parámetros Regreso Tipo de retorno
1 from ( $ from [, $ name = '' [, $ return_path = NULL ]])

$from( cadena ): dirección de correo electrónico "De"

$name( cadena ): nombre para mostrar "De"

$return_path( cadena ): dirección de correo electrónico opcional para redirigir el correo electrónico no entregado a

Instancia de CI_Email (encadenamiento de métodos) CI_Email
2 responder_a ( $ responder a [, $ nombre = '' ])

$replyto( cadena ): dirección de correo electrónico para las respuestas

$name( cadena ): nombre para mostrar de la dirección de correo electrónico de respuesta

Instancia de CI_Email (encadenamiento de métodos) CI_Email
2 a ( $ a )

$to( mixto ): cadena delimitada por comas o una matriz de direcciones de correo electrónico

Instancia de CI_Email (encadenamiento de métodos) CI_Email
3 cc ( $ cc )

$cc( mixto ): cadena delimitada por comas o una matriz de direcciones de correo electrónico

Instancia de CI_Email (encadenamiento de métodos) CI_Email
4 bcc ( $ bcc [, $ límite = '' ])

$bcc( mixto ): cadena delimitada por comas o una matriz de direcciones de correo electrónico

$limit( int ): número máximo de correos electrónicos para enviar por lote

Instancia de CI_Email (encadenamiento de métodos) CI_Email
5 asunto ( $ asunto )

$subject( cadena ): línea de asunto del correo electrónico

Instancia de CI_Email (encadenamiento de métodos) CI_Email
6 mensaje ( $ cuerpo )

$body( cadena ): cuerpo del mensaje de correo electrónico

Instancia de CI_Email (encadenamiento de métodos) CI_Email
7 set_alt_message ( $ str )

$str( cadena ): cuerpo del mensaje de correo electrónico alternativo

Instancia de CI_Email (encadenamiento de métodos) CI_Email
8 set_header ( $ encabezado, $ valor )

$header( cadena ): nombre del encabezado

$value( cadena ): valor del encabezado

Instancia de CI_Email (encadenamiento de métodos) CI_Email
9 clear ([ $ clear_attachments = FALSE ])

$clear_attachments( bool ): si se borran o no archivos adjuntos

Instancia de CI_Email (encadenamiento de métodos) CI_Email
10 enviar ([ $ auto_clear = TRUE ])

$auto_clear( bool ): si se borran los datos del mensaje automáticamente

Instancia de CI_Email (encadenamiento de métodos) CI_Email
11 adjuntar ($ nombre de archivo [, $ disposición = '' [, $ nombre nuevo = NULL [, $ mime = '']]])

$filename( cadena ): nombre de archivo

$disposition( cadena ) - 'disposición' del adjunto. La mayoría de los clientes de correo electrónico toman sus propias decisiones independientemente de la especificación MIME utilizada aquí. iana

$newname( cadena ): nombre de archivo personalizado para usar en el correo electrónico

$mime( cadena ): tipo MIME para usar (útil para datos almacenados en búfer)

Instancia de CI_Email (encadenamiento de métodos) CI_Email
12 attach_cid ( $ nombre de archivo )

$filename( cadena ): nombre de archivo adjunto existente

Adjunto Content-ID o FALSE si no se encuentra cuerda

Enviando un correo electrónico

Para enviar un correo electrónico usando CodeIgniter, primero debe cargar la biblioteca de correo electrónico usando lo siguiente:

$this->load->library('email');

Después de cargar la biblioteca, simplemente ejecute las siguientes funciones para configurar los elementos necesarios para enviar un correo electrónico. losfrom() La función se utiliza para configurar: desde dónde se envía el correo electrónico y to()se utiliza la función: a quién se envía el correo electrónico. lossubject() y message() La función se utiliza para establecer el asunto y el mensaje del correo electrónico.

$this->email->from('[email protected]', 'Your Name');
$this->email->to('[email protected]');
 
$this->email->subject('Email Test');
$this->email->message('Testing the email class.');

Después de eso, ejecute el send() funciona como se muestra a continuación para enviar un correo electrónico.

$this->email->send();

Ejemplo

Crea un archivo de controlador Email_controller.php y guárdalo en application/controller/Email_controller.php.

<?php 
   class Email_controller extends CI_Controller { 
 
      function __construct() { 
         parent::__construct(); 
         $this->load->library('session'); 
         $this->load->helper('form'); 
      } 
		
      public function index() { 
	
         $this->load->helper('form'); 
         $this->load->view('email_form'); 
      } 
  
      public function send_mail() { 
         $from_email = "[email protected]"; 
         $to_email = $this->input->post('email'); 
   
         //Load email library 
         $this->load->library('email'); 
   
         $this->email->from($from_email, 'Your Name'); 
         $this->email->to($to_email);
         $this->email->subject('Email Test'); 
         $this->email->message('Testing the email class.'); 
   
         //Send mail 
         if($this->email->send()) 
         $this->session->set_flashdata("email_sent","Email sent successfully."); 
         else 
         $this->session->set_flashdata("email_sent","Error in sending Email."); 
         $this->load->view('email_form'); 
      } 
   } 
?>

Crea un archivo de vista llamado email_form.php y guárdalo en application/views/email_form.php

<!DOCTYPE html> 
<html lang = "en"> 

   <head> 
      <meta charset = "utf-8"> 
      <title>CodeIgniter Email Example</title> 
   </head>
	
   <body> 
      <?php 
         echo $this->session->flashdata('email_sent'); 
         echo form_open('/Email_controller/send_mail'); 
      ?> 
		
      <input type = "email" name = "email" required /> 
      <input type = "submit" value = "SEND MAIL"> 
		
      <?php 
         echo form_close(); 
      ?> 
   </body>
	
</html>

Realice los cambios en el routes.php presentar en application/config/routes.php y agregue la siguiente línea al final del archivo.

$route['email'] = 'Email_Controller';

Ejecute el ejemplo anterior visitando el siguiente enlace. Reemplace el yoursite.com con la URL de su sitio.

http://yoursite.com/index.php/email