public function indexAction()
    {
        $this->view->headTitle('Contato');
        $categoriaModel = new Application_Model_Categoria();
        $nome_categorias = $categoriaModel->fetchAll($categoriaModel->select()->from($categoriaModel->info(Zend_Db_Table_Abstract::NAME))->columns(array('nome_categoria')));
        $this->view->categorias = $nome_categorias;
        require_once APPLICATION_PATH . '/forms/Contato.php';
        $this->view->form = new Application_Form_Contato();
        if ($this->_request->isPost()) {
            $this->view->form->setDefaults($this->_request->getPost());
            $data = $this->view->form->getValues();
            if ($this->view->form->isValid($data)) {
                $contatosModel = new Application_Model_Contatos();
                $id = $contatosModel->insert($data);
                $data = '<html><body><table>
					<tr><td>Nome</td>
					<td>' . $_POST['nome'] . '</td></tr>
					<tr><td>E-mail</td>
					<td>' . $_POST['email'] . '</td></tr>
					<tr><td>Telefone</td>
					<td>' . $_POST['telefone'] . '</td></tr>
					<tr><td>Texto</td>
					<td>' . $_POST['mensagem'] . '</td></tr>
					</table></body></html>';
                // Using the ini_set()
                ini_set("SMTP", "localhost");
                ini_set("sendmail_from", "*****@*****.**");
                ini_set("smtp_port", "587");
                $mail = new Zend_Mail('UTF-8', 'ISO-8859-8');
                $mail->setBodyHtml($data)->setFrom('*****@*****.**', 'Formulario de Contato')->addTo('*****@*****.**', 'Contato')->setSubject('Contato')->send();
                return $this->_helper->redirector('index');
            }
        }
    }
 public function responderAction()
 {
     $id = $this->_request->getParam('id');
     $contatosModel = new Application_Model_Contatos();
     $row = $contatosModel->fetchRow($contatosModel->select()->where('id_msg = ?', $id));
     $row->respondida = 1;
     $row->save();
     $this->_helper->redirector('index');
 }
 public function envioProgramadoAction()
 {
     //executar este script a cada 20 minutos ....
     $mCron = new Application_Model_Agendador();
     $mSend = new Application_Model_SendMail();
     $dados = new Application_Model_Contatos();
     $date = date('Y-m-d H:i:s');
     $data = $mCron->getEnvioToDate($date);
     if (count($data)) {
         $this->sessao_agenda->layout = $data->agn_template;
         $this->sessao_agenda->titulo = $data->agn_assunto;
         $mCron->setStatus('enviado', $data->agn_id);
         $layout = isset($this->sessao_agenda->layout) ? $this->sessao_agenda->layout : $data->agn_template;
         $titulo = isset($this->sessao_agenda->titulo) ? $this->sessao_agenda->titulo : $data->agn_assunto;
         $total_por_vez = 1000;
         $collection = $dados->getListContatosNotSend('inativo', $total_por_vez);
         //ENVIA 1000 POR VEZ
         if (!empty($collection)) {
             foreach ($collection as $contato) {
                 $nome_usuario = $contato['nome'];
                 $usuario_email = $contato['email'];
                 $usuario_id = $contato['id_contato'];
                 $nome_usuario = $nome_usuario != "" ? $nome_usuario : 'Usuário';
                 $dinamic_content = $contato['dinamic_content'];
                 $arguments = array('template' => $layout, 'email_recebe' => $usuario_email, 'nome_recebe' => $nome_usuario, 'dinamic_content' => $dinamic_content);
                 $mSend->setBody($arguments, $titulo);
                 $enviou = $mSend->sendEmail();
                 $dados->setStatusEnviou($usuario_id);
                 //sleep(5);
             }
             $this->view->enviando = 'Esta página é executada através do agendador cron, executando a coleção de envio: <br><pre> ' . print_r((array) $collection, true) . '</pre>';
         } else {
             $dados->setStatusEnviouTudo();
             unset($this->sessao_agenda->layout);
             unset($this->sessao_agenda->titulo);
             $this->view->enviando = 'Esta página é executada através do agendador cron - fim de envio de emails.';
         }
     } else {
         $this->view->enviando = 'Esta página é executada através do agendador cron - Não há envios agendados para ' . date('d/m/Y H:i:s');
     }
 }
 public function clickAction()
 {
     $this->_helper->viewRenderer->setNoRender(true);
     $request = $this->getRequest();
     $k = $request->getParam('k');
     $url = $request->getParam('url');
     $email = base64_decode(str_replace('::', '/', $k));
     $url = base64_decode(str_replace('::', '/', $url));
     $modelMsg = new Application_Model_Contatos();
     $modelRel = new Application_Model_Relatorio();
     $data = $modelMsg->getContatoByEmail($email);
     if (count($data)) {
         $setRelatorio = $modelRel->setStatus($data->id_contato, 'CLICOU NO LINK DA MENSAGEM');
     }
     if (preg_match('/htt(.*)/', urldecode($url))) {
         $this->redirect(html_entity_decode(urldecode($url)));
     } else {
         $this->redirect('index/link-invalido');
     }
 }