function cronAction()
 {
     check_demo();
     if (!$this->getDi()->config->get('email_backup_frequency')) {
         throw new Am_Exception_InternalError("Email Backup feature is disabled at Setup/Configuration -> Advanced");
     }
     $key = $this->getParam('k');
     if ($key != $this->getDi()->app->getSiteHash('backup-cron', 10)) {
         throw new Am_Exception_AccessDenied("Incorrect access key");
     }
     $dat = date('Y_m_d');
     $stream = fopen('php://temp', 'w+b');
     if (!$stream) {
         throw new Am_Exception_InternalError("Could not open php://temp stream");
     }
     $bp = new Am_BackupProcessor();
     $stream = $bp->run($stream);
     rewind($stream);
     $filename = $bp->isGzip() ? "amember-{$dat}.sql.gz" : "amember-{$dat}.sql";
     $mimeType = $bp->isGzip() ? 'application/x-gzip' : 'text/sql';
     $m = new Am_Mail();
     $m->addTo($this->getDi()->config->get('email_backup_address'))->setSubject('Email Backup ' . $dat)->setFrom($this->getDi()->config->get('admin_email'));
     $m->setBodyText(sprintf("File with backup for %s is attached. Backup was done at %s", $this->getDi()->config->get('root_url'), $this->getDi()->sqlDate));
     $m->createAttachment($stream, $mimeType, Zend_Mime::DISPOSITION_ATTACHMENT, Zend_Mime::ENCODING_BASE64, $filename);
     $m->setPeriodic(Am_Mail::ADMIN_REQUESTED);
     $m->send();
     $this->getDi()->adminLogTable->log('Email backup to ' . $this->getDi()->config->get('email_backup_address'));
 }