Cómo enviar emails usando CakePHP

Dificultad: Fácil
Tiempo de Lectura: 2 minutos

CakeEmail es una nueva clase para enviar correo electrónico desde Cakephp. Con esta clase se puede enviar correo electrónico desde cualquier lugar en su aplicación. Además de utilizar el EmailComponent de su controlador, también puede enviar correo desde Consola y Modelos.

Esta clase reemplaza la EmailComponent y da más flexibilidad en el envío de mensajes de correo electrónico. Por ejemplo, usted puede crear sus propios métodos para enviar correo electrónico en lugar de utilizar el SMTP proporcionado.

Primero que todo debemos cargar nuestro modulo de envío de correo en nuestra variable Uses , lo mas recomendable es que sea en nuestro archivo AppControllers.php para que pueda ser utiliza en todos nuestros controladores se debe hacer de la siguiente manera.

App::uses('CakeEmail', 'Network/Email');

Un ejemplo de envio simple de Email seria el siguiente

$Email = new CakeEmail();
$Email->from(array('me@example.com' => 'Mi Sitio'));
$Email->to('you@example.com');
$Email->subject('Acerca de');
$Email->send('Mi Mensaje');

Configuración Personalizada de Envío de Email con Cakephp

Como la configuración de la base de datos, podemos crear un archivo de configuración centralizado para nuestra clase de envios de correos.

Creando el archivo app/Config/email.php con la clase EmailConfig. El archivo app/Config/email.php.default es un archivo de ejemplo de esta clase.

CakeEmail creará una instancia de la clase EmailConfig para acceder a la config. Si tiene datos dinámicos para poner en las configuraciones, puede utilizar el constructor para hacer lo siguiente:

class EmailConfig {
   public function __construct() {
   // Do conditional assignments here.
   }
}

Puede configurar los servidores SMTP SSL para Gmail. Para ello necesitas el prefijo del host con ‘ssl://’ aquí te mostramos una configuración para enviar con gmail

class EmailConfig {
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'my@gmail.com',
'password' => 'secret',
'transport' => 'Smtp'
);
}

Ya con esta información podemos configurar nuestros correos instanciando la clase de la siguiente manera

$Email = new CakeEmail('gmail');
$Email->subject('Acerca de');
$Email->send('Mi Mensaje');

Con esto podemos concluir este tema para el envio de correo con Cakephp, espero que esta información les sirva de ayuda en sus desarrollos.


¿Te resultó útil el artículo? Compártelo con tus colegas: