Buenos días a todos!

Hoy os voy a explicar un pequeño tip que he necesitado mientras desarrollaba la web de un cliente basándome en el framework CakePHP. Para todos los que no sepáis qué es CakePHP os recomiendo que os paséis por estos enlaces:

CakePHP ¿Qué es?

– ¿Qué es CakePHP y por qué hay que utilizarlo?

Este fin de semana estuve cacharreando un poco en una web de un cliente y debido a unos problemas con el servidor de correo he decidido finalmente utilizar una cuenta de gmail como pasarela de envío de correos.

El código que utilicé fue el siguiente:

                
		$this->Email->to = "Receptor <receptor@email.com>";
		$this->Email->subject = 'Asunto del correo';
		$this->Email->from = 'Nombre <correo@gmail.com>';
		$this->Email->template = $data['template'];
		$this->Email->smtpOptions = array(
			'port'=>'465',
			'timeout'=>'30',
			'host' => 'ssl://smtp.gmail.com', 
			'username' => 'correo@gmail.com',
			'password' => 'CLAVE',
		);
		$this->Email->delivery = 'smtp';
		if ($this->Email->send()) {
			return true;
		} else {
			echo $this->Email->smtpError;
		}

Debemos tener en cuenta que si no indicamos tanto el parámetro to como el from de la forma que indico => “Nombre de usuario <email@email.com>” recibiremos un error que no nos permita enviar dicho correo.

Destacar que, para que esto funcione correctamente, deberemos tener activa la extensión php_openssl de nuestro servidor de apache. Lo encontraréis en el fichero php.ini de vuestro servidor:

extension=php_openssl.dll

Esta extensión es necesaria ya que, los servidores de gmail funcionan con seguridad SSL , por ello en el parámetro host de nuestro objeto Email de CakePHP hemos tenido que escribir ssl://smtp.gmail.com.

Si quisiéramos utilizar otro servidor que no tuviera dicha seguridad, bastaría con poner la dirección únicamente: smtp.loquesea.com.

Espero os sirva de ayuda!