Como en la mayoría de Frameworks de PHP es muy sencillo enviar correos con Zend Framework 2, vamos a ver como se hace utilizando el smtp de Gmail.
En un controlador:
<?php namespace Modulo\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; //Componentes necesarios para enviar el correo use Zend\Mail\Message; use Zend\Mail\Transport\Smtp as SmtpTransport; use Zend\Mail\Transport\SmtpOptions; class IndexController extends AbstractActionController{ public function indexAction(){ $destinatario='correo@correo.com'; $emisor='micorreo@gmail.com'; //Enviar email $message = new Message(); $message->addTo($destinatario) ->addFrom($emisor) ->setEncoding("UTF-8") ->setSubject('Registro de usuarios correcto') ->setBody("Hola te has registrado correctamente en mi aplicación"); // Utilizamos el smtp de gmail con nuestras credenciales $transport = new SmtpTransport(); $options = new SmtpOptions(array( 'name' => 'smtp.gmail.com', 'host' => 'smtp.gmail.com', 'port' => 587, 'connection_class' => 'login', 'connection_config' => array( 'username' => 'correo@gmail.com', 'password' => 'contraseña', ), )); $transport->setOptions($options); //Establecemos la configuración $transport->send($message); //Enviamos el correo } }
9 marzo, 2015
Cordial saludo Victor
Desde el año pasado me he guiado por tus instructivos, son muy buenos. Particularmente en este me sale el siguiente error:
5.7.0 Must issue a STARTTLS command first. 62sm16961636yhq.22 – gsmtp
¿De casualidad sabes a que se debe que salga este error?
De antemano gracias por tu ayuda.
Feliz día.
2 diciembre, 2015
Hola Sandra, yo tengo el mismo error, dime tu lo pudiste solucionar?
3 diciembre, 2015
Creo que se puede arreglar usando el puerto 465 y SSL para que funcione el envio con el smtp de Gmail.
Espero que podais arreglarlo 😉
3 diciembre, 2015
Tengo el mismo error! han logrado solucionarlo?
27 junio, 2016
Saludos, buen post Victor, gracias!
Para resolver lo del error que plantean solo hay que agregar
‘ssl’ => ‘tls’ en la sección ‘connection_config’ de las opciones:
$options = new SmtpOptions([
‘name’ => ‘smtp.gmail.com’,
‘host’ => ‘smtp.gmail.com’,
‘port’ => 587,
‘connection_class’ => ‘login’,
‘connection_config’ => [
‘username’ => ‘tuusuario@gmail.com’,
‘password’ => ‘tupasword’,
‘ssl’ => ‘tls’,
],
]);