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 redireccionar toda la web a SSL Os indico como redireccionar en una web creada con Codeigniter para que siempra, escriban lo que escriban en la barra de dirección accedan a nuestra w...
Codeigniter – Producción o desarrollo Codeigniter permite poner tu aplicación en modo producción o desarrollo según nos interese. En el caso de poner la aplicación en desarrollo, veremos l...
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...
CodeIgniter – Cómo averiguar si nos visitan ... Ahora mas que nunca, nos puede interesar saber si un usuario visita nuestra web desde el ordenador o, desde un dispositivo móvil (smartphone o tablet)...

Deja un comentario

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

*