sobre

Este es un mini tutorial acerca de como enviar emails en Symfony usanto el protocolo SMTP y el servidor Gmail de Google. Para ello vamos a instalar el framework Zend y configuraremos Symfony para que lo utilize. Además, esto servirá para emplear otros módulos de Zend que pueden completar a Symfony.

En primer lugar descargamos ZendAsumo que Symfony se encuentra instalado y en uso– del sitio oficial. Para ello debemos registrarnos si no tenemos cuenta. A día de hoy se encuentra disponible la 1.7. Vamos a elegir la versión mínima.

Tras descomprimir el zip no quedaremos solo con los módulos necesarios para nuetra actividad. Debemos copiar los siguientes archivos y directorios a /lib/vendor/Zend de nuestro proyecto Symfony:

Exception.php
/Loader
Loader.php
/Mail
Mail.php
/Mime
Mime.php
Registry.php
/Validate
Validate.php

Tras esto tenemos que indicar a Symfony que debe carcar las nuevas clases modificando el fichero <nombreAplicación>Configuration.class.php que se encuentra en /app/<nombreAplicación>/config con el siguiente código:

static protected $zendLoaded = false;
static public function registerZend()
{
if (self::$zendLoaded)
{
return;
}
set_include_path(sfConfig::get('sf_lib_dir').'/vendor'.PATH_SEPARATOR.get_include_path());
require_once sfConfig::get('sf_lib_dir').'/vendor/Zend/Loader.php';
Zend_Loader::registerAutoload();
self::$zendLoaded = true;
}

La constante sf_lib_dir devuelve la ruta al /lib de nuestro proyecto.

Con lo anterior ya estamos listos para cargar el módulo de correo. Zend proporciona varios protocolos para enviar correos electrónicos. Si no se dice nada, por defecto la clase Zend_mail es un envoltorio de la función mail() de PHP, una función que no recomiendo para envio masivo de correo porque tiene un elevado consumo de recursos para el servidor. Nosotros emplearemos el protocolo SMTP y lo haremos empleado el servidor de Gmail, con el que podremos enviar correos desde nuetra cuenta. Para ello:

frontendConfiguration::registerZend();
$config = array(
'auth' => 'login',
'username' => 'tu_usuario_gmail',
'password' => 'password_de_tu_cuenta',
'ssl' => 'ssl',
'port' => 465
);
$tr = new Zend_Mail_Transport_Smtp('smtp.gmail.com',$config);
Zend_Mail::setDefaultTransport($tr);
$mail = new Zend_Mail();
$mail->setBodyText(<<
El cuerpo de tu correo.
es muy fácil.
EOF
);
$mail->setFrom('origen@origen.com', 'Nombre');
$mail->addTo('destino@destino.com');
$mail->setSubject('El asunto');
$mail->send();

La documentación es muy completa y describe como adjuntar archivos, crear un cuerpo HTML…
Existen otros framework dedicados exclusivamente al envio de correo como Swift mailer o PHP mailer. Todos se instalan de forma similar pero la elección de Zend es debido a que complementa muy bien a Symfony.

Recursos:

Symfony project.

Zend Framework

Documentación del módulo Mail de Zend Framework


  1. 1 Zend-mail: enviar mensajes de correo con acentos « El Cubo de las tecnologías

    [...] 18, 2009 in PHP En una entrada pasada expliqué cómo integrar Zend-Mail, módulo para el envio de email en Zend framework, en [...]




Leave a Comment




  • RSS En meetui.com:

    • Lector de DNI por 2 Euros
    • Logo conmemorativo a Barrio Sésamo
    • Soporte para ATOM en Meetui
    • Administrador de comentarios
    • Meetui renovado
  • .:Páginas:.

  • Recomendamos meetui.com

    meetui.com es una nueva red social que gira entorno a los blog, presominando la sencilles y una interface sencilla.
    Entra en meetui.com
  • .:Madagascar p2p virtual disk:.

    Madagascar es una aplicación peer-to-peer que permite compartir música, video y cualquiertipo de archivos con quien tú quieras. La aplicación crea un gran disco duro virtual formado por todos los integrantes de la red. Las comunicaciones son anónimas y soporta cifrado AES 128 bits.
  • .:CiberDerechos:.

    Articulo 18.2 y 18.3 de la Constitucion: " 3. Se garantiza el secreto de las comunicaciones y, en especial, de las postales, telegráficas y telefónicas, salvo resolución judicial."
  • .:Post recientes:.

  • .:Frases:.

    "Los viejos todo lo cree; los adultos todo lo sospechan, mientras que los jovenes todo lo saben"
    (Oscar Wilde)
  • .:Clasificados:.