CodeIgniter 3 – Clase email

Un peuqeño ejemplo de cómo utilizar y configurar la clase Email de CodeIgniter 3 para poder enviar emnsajes de correo electrónico en nuestra aplicación.

Primero un pequeño resumen, solamente para refrescar la memoria:

Refrescamos la memoria

Dónde se configura el email

Antes de enviar emails, hay que configurar el cómo y que servidor utilizar. Para ello indicamos la configuración siguiente (por ejemplo):

// Configuramos el email 
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;

$this->email->initialize($config);

En este caso enviamos emails con Sendmail. Vale, ya lo tenemos configurado. Ahora toca enviar el email.

Para enviar email

// Cargamos la librería
$this->load->library('email');
// Datos para el envío del email
$this->email->from('email@origen.com', 'Tu nombre');
$this->email->to('email@destino.com');
$this->email->cc('email@copia.com');
$this->email->bcc('email@copiaoculta.com');
$this->email->subject('Asunto del email');
$this->email->message('Mensaje dentro del email');
// Enviamos email
$this->email->send();
// Mostramos como ha ido
echo $this->email->print_debugger();

Centrelicemos la configuración

Pues bien, hay una manera sencilla para tener la configuración del email de manera centralizada. Y es crear un aricho llamado ‘email.php’ dentro de la carpeta ‘config’. Automáticamente Codeigniter te lo cogerá para configurar la clase email. Veamos dos ejemplos de ficheros ‘email.php’:

Enviando email vía SMTP

/* Contenido fichero /config/email.php */
$config['protocol'] = 'smtp';
$config['smtp_host'] = 'pop.miservidorsaliente.com';
$config['smtp_user'] = 'usuario@miservidorsaliente.com';
$config['smtp_pass'] = 'Laconstraseña';
$config['smtp_port'] = '25';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['priority'] = 3;

En este primer ejemplo el envío será mediante SMTP. Como podemos ver, son todos los datos que necesitamos para enviar emails con servidor SMTP. Si buscáis por Google, podéis ver cómo configurarlo para enviar emails con cuenta de GMAIL.

Enviando email vía Sendmail

/* Contenido fichero /config/email.php */
$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['charset'] = 'utf-8';
$config['mailtype'] = 'html';
$config['charset'] = 'utf-8';
$config['priority'] = 3;

En este segundo ejemplo está la configuración para el envío mediante Sendmail en un Servidor Linux

Tengo problemas con SMTP

En muchas ocasiones, la seguridad de los servidores provocarán errores de envío de emails. Por ejemplo, que se envíe al email asignado al campo To, pero no se envíen a los asignados a las copias o copias ocultas. Que diga que se han enviado todos los emails, y solo se reciba en uno…

Os aconsejo entonces, que configuréis para enviar con Sendmail.

Espero que os haya sido de utilidad el artículo para ver cómo configurar y usar en CodeIgniter 3 la clase email

Y como siempre: No me hago responsable de nada de lo que hagáis. El artículo es informativo. Todo lo que hagáis será bajo vuestra responsabilidad.


Más información