protected function execute($arguments = array(), $options = array())
 {
     // initialize the database connection
     $databaseManager = new sfDatabaseManager($this->configuration);
     $connection = $databaseManager->getDatabase($options['connection'] ? $options['connection'] : null)->getConnection();
     ProjectConfiguration::setupMailer();
     $queue_table = Doctrine::getTable('MailQueue');
     $queue = $queue_table->getPending($arguments['limit']);
     $done = array();
     $failed = array();
     foreach ($queue as $item) {
         try {
             $mail = new Zend_Mail('utf-8');
             $mail->setSubject($item['subject']);
             $mail->setBodyText($item['body']);
             array_map(array($mail, 'addTo'), explode(',', $item['recipients']));
             $mail->send();
             $done[] = $item['id'];
         } catch (Zend_Exception $e) {
             $failed[] = $item['id'];
         }
     }
     $queue_table->deleteItems($done);
     $queue_table->recordAttemps($failed);
     $this->logSection('mailer', sizeof($done) . ' emails sent');
     $this->logSection('mailer', sizeof($failed) . ' emails failed');
 }