CodeIgniter – Clase email

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):

1
2
3
4
5
6
7
// 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

1
2
3
4
5
6
7
8
9
10
11
12
13
// 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

1
2
3
4
5
6
7
8
9
/* 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

1
2
3
4
5
6
7
/* 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.

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

Artículos relacionados

CodeIgniter – Ver si el navegador soporta di... Cuando instalamos un navegador en nuestro sistema operativo, lo hacemos en un idioma. Así, cuando navegamos, nuestro navegador lo hace en un idioma u ...
CodeIgniter – No mostrar errores en producci... Vayamos por partes y rápido, que ni tu tienes ganas de leer, ni yo de escribir un libro. Esto complementaría otros post al respecto: Errores PHP ...
CodeIgniter – Quitar index.php de la url Para poder trabajar bien las url amigables en CodeIgniter, debemos quitar el index.php que sale por defecto cuando navegas por la aplicación. Hay que ...
Frameworks para php Cuando hay que crear proyectos serios hay que recurrir a un Framework que lo apoye. La palabra seriedad la aplico a proyectos medianos-grandes que nec...

Deja un comentario

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

*