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