Enviando email no symfony usando o biblioteca de email do Zend Framework

Acesse o site da Zend.com e baixe a biblioteca do Zend Framework, escolha a opção mínima pois só queremos utilizar o sistema de Email. o arquivo é algo como ZendFramework-1.7.7-minimal.tar.gz, será necessário fazer um cadastro rápido para conseguir o arquivo.

Crie o essa estrutura de diretório para armazenar o download.
mkdir -p projeto/lib/vendor/Zend/tmp

Descompacte o arquivo:
tar -xzvf ZendFramework-1.7.7-minimal.tar.gz projeto/lib/vendor/Zend/tmp

Copie os arquivos que vamos precisar para o diretório Zend:
cp -R Exception.php Loader/ Loader.php Mail/ Mail.php Mime/ Mime.php Registry.php Search/ Validate/ Validate.php /projeto/lib/vendor/Zend/

Agora configure o symfony para carregar no arquivo projeto/config/ProjectConfiguration.class.php.

adicione no início da classe ProjectConfiguration:


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;
}

pronto, estamos prontos para utilizar o Zend Mail.

para programar o envio de email utilizando o zend mail fazemos:


public function executeSave( sfWebRequest $request ){

ProjectConfiguration::registerZend();

$config = array('auth' => 'login',
'username' => 'example@example.com',
'password' => 'senha');

$transport = new Zend_Mail_Transport_Smtp('inuar.com', $config);

$mail = new Zend_Mail();
$mail->setBodyText(<< Seu cadastro foi realizado com sucesso!
EOF
);
$mail->setFrom('example@example.com', 'Nei');
$mail->addTo('example@example.com');
$mail->setSubject('Este é um teste.');

try {
$mail->send( $transport );
} catch (Zend_Mail_Exception $e) {
$log = $transport->getConnection()->getLog();
}

}