コード例 #1
0
 /**
  * Método que envia os e-mails para os professores semanalmente
  */
 public function enviar_newsletter()
 {
     set_time_limit(600);
     if (!$this->configs->status) {
         //impedindo o envio antes da ativação
         die('O envio esta desativado');
     }
     if ($this->configs->diaEnvio != (int) date('N')) {
         //Impedindo o envio fora do dia correto
         die('Hoje não é dia de envio');
     }
     $professorObj = new Kernel_Models_Contratos();
     $constaEnvio = new Kernel_Models_NewsletterContas();
     $usuarioSistema = new Kernel_Models_Usuario();
     $todos = $professorObj->aceitaReceber(1, $this->configs->destinatariosEspecificos);
     $mail = new Mail();
     while ($professor = $todos->fetchObject()) {
         $emailDestino = $professor->email;
         if ($this->configs->efetuarTeste) {
             $emailDestino = $this->configs->emailTeste;
         }
         if (filter_var($emailDestino, FILTER_VALIDATE_EMAIL)) {
             $token = $usuarioSistema->gerarToken($professor->pk_usuario, Kernel_Models_TiposUsuario::TIPO_PROFESSOR);
             if ($token) {
                 echo "Enviando para {$professor->nome}({$emailDestino}){$professor->pk_usuario_professor}<br>)";
                 $mail->mensagemDeModelo(array('titulo' => 'Olá ' . $professor->nome, 'subtitulo' => 'Este é o seu resumo semanal', 'conteudo' => 'Clique <a href="' . base_url() . 'usuario/auth/verificar_acesso/' . $token . '?pagina=' . base_url() . 'agendas/professor/meu_resumo_semanal/' . '">aqui</a> para ver o resumo das suas atividades '));
                 if ($constaEnvio->enviar($professor->nome, $emailDestino, 'Agenda semanal do professor', $mail->getMensagem())) {
                     echo 'Email enviado com sucesso<br>';
                 } else {
                     echo 'Falha ao enviar o e-mail para ' . $professor->nome . '<br>' . $constaEnvio->getErros() . '<br>';
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: service.php プロジェクト: andersongimino/area51
 /**
  * Método que permite editar uma conta de envio de newsletter
  */
 public function editar_conta()
 {
     $contas = new Kernel_Models_NewsletterContas();
     $isMini = filter_input(INPUT_POST, 'mini', FILTER_VALIDATE_BOOLEAN);
     $contas->setId(filter_input(INPUT_POST, 'conta', FILTER_VALIDATE_INT))->setFrom_name(filter_input(INPUT_POST, 'from', FILTER_SANITIZE_MAGIC_QUOTES))->setEmail_from(filter_input(INPUT_POST, 'email', FILTER_SANITIZE_MAGIC_QUOTES))->setSenha(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_MAGIC_QUOTES))->setHost(filter_input(INPUT_POST, 'host', FILTER_SANITIZE_MAGIC_QUOTES));
     if (!$isMini) {
         $contas->setTipo_seguranca(filter_input(INPUT_POST, 'seguranca'))->setNome_descricao(filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_MAGIC_QUOTES))->setPorta(filter_input(INPUT_POST, 'porta', FILTER_VALIDATE_INT))->setSmtp_auth(filter_input(INPUT_POST, 'smtp_auth', FILTER_VALIDATE_BOOLEAN))->setEnvio_exclusivo(filter_input(INPUT_POST, 'exclusivo', FILTER_SANITIZE_MAGIC_QUOTES));
         $senha2 = filter_input(INPUT_POST, 'senha2', FILTER_SANITIZE_MAGIC_QUOTES);
         if ($contas->getSenha() != $senha2) {
             $this->setMensagem("As senhas são diferente")->setStatusCod(9)->printResposta();
             return;
         }
     }
     $validar = $contas->validar(TRUE);
     if ($validar && ($isMini ? in_array($validar, array(2, 3, 4, 7)) : TRUE)) {
         $this->setMensagem("Um dos dados informados é inválido")->setStatusCod($validar)->printResposta();
         return;
     }
     if ($isMini) {
         $update = $contas->update(FALSE, array('email_from', 'from_name', 'senha', 'host'));
     } else {
         $update = $contas->update(FALSE, array('n_envios'), TRUE);
     }
     if ($update) {
         $this->setMensagem("Conta editada com sucesso")->setStatusCod(0)->statusTrue();
     } else {
         $this->setMensagem('Ocorreu um erro ao tentar editar a conta. ' . 'Tente novamente mais tarde:' . $contas->getId());
     }
     $this->printResposta();
 }
コード例 #3
0
ファイル: admin.php プロジェクト: andersongimino/area51
 public function enviar_newsletter_email()
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 25;
     $data['abaPage'] = 'enviar_newsletter_email';
     $data['alias'] = 'enviar_newsletter_email';
     // Pega o total de turmas a serem processadas
     $total = count($_SESSION['dadosEnvio']);
     $result = $_SESSION['dadosEnvio'];
     $data['total'] = $total;
     $data['status'] = '';
     // Se já tiver ocorrido algum redirecionamento, faz um incremento. Caso contrário, inicia a contagem
     if (isset($_GET['counter'])) {
         $counter = $_GET['counter'] + 1;
     } else {
         $counter = 0;
     }
     // carrega a library e envia as variáveis a função "loop_refresh"
     $this->load->library('util');
     $data['redirect_delay'] = $this->util->loop_refresh('1', $this->uri->segment(3), $counter, $total);
     // Se o contador for menor que o total de registros da array, efetua o processamento com base no registro da vez
     if ($counter < $total) {
         $dadosEnvio = $result[$counter];
         $data['status'] = '<div class="alert ok">
                 Enviando para...<br />
                 <strong>Email:</strong> ' . $dadosEnvio['email'] . '<br />
                 <strong>Destinatário:</strong> ' . $dadosEnvio['nome'] . '<br />
                 <strong>Aluno(a):</strong> ' . $dadosEnvio['nome'] . '</div>';
         $nomeDestinatario = (string) $dadosEnvio['nome'];
         $emailDestinatario = (string) $dadosEnvio['email'];
         // $emailDestinatario = '*****@*****.**';
         $nomeAluno = (string) $dadosEnvio['aluno'];
         $pk_usuario_aluno = $dadosEnvio['pk_usuario_aluno'];
         $assunto = $_SESSION['news_nome'];
         $headers = 'MIME-Version: 1.0' . "\r\n";
         $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
         $headers .= "From: Colégio GGE <*****@*****.**>";
         if ($_SESSION['newsletter_fundamental'] == 1) {
             $sqlGrade = new SqlGrade();
             $result = $sqlGrade->get_turma_aluno($pk_usuario_aluno);
             if ($result[0]['fk_serie'] == 1 && $result[0]['fk_unidade'] == 1) {
                 $tag = '1o-ano-fund-1-boa-viagem';
             } else {
                 if ($result[0]['fk_serie'] == 2 && $result[0]['fk_unidade'] == 1) {
                     $tag = '2o-ano-fund-1-boa-viagem';
                 } else {
                     if ($result[0]['fk_serie'] == 3 && $result[0]['fk_unidade'] == 1) {
                         $tag = '3o-ano-fund-1-boa-viagem';
                     } else {
                         if ($result[0]['fk_serie'] == 4 && $result[0]['fk_unidade'] == 1) {
                             $tag = '4o-ano-fund-1-boa-viagem';
                         } else {
                             if ($result[0]['fk_serie'] == 5 && $result[0]['fk_unidade'] == 1) {
                                 $tag = '5o-ano-fund-1-boa-viagem';
                             } else {
                                 if ($result[0]['fk_serie'] == 1 && $result[0]['fk_unidade'] == 4) {
                                     $tag = '1o-ano-fund-1-benfica';
                                 } else {
                                     if ($result[0]['fk_serie'] == 2 && $result[0]['fk_unidade'] == 4) {
                                         $tag = '2o-ano-fund-1-benfica';
                                     } else {
                                         if ($result[0]['fk_serie'] == 3 && $result[0]['fk_unidade'] == 4) {
                                             $tag = '3o-ano-fund-1-benfica';
                                         } else {
                                             if ($result[0]['fk_serie'] == 4 && $result[0]['fk_unidade'] == 4) {
                                                 $tag = '4o-ano-fund-1-benfica';
                                             } else {
                                                 if ($result[0]['fk_serie'] == 5 && $result[0]['fk_unidade'] == 4) {
                                                     $tag = '5o-ano-fund-1-benfica';
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
             $mensagem = 'Prezado(a) Sr(a) ' . $nomeDestinatario . ',<br /><br />';
             $mensagem .= 'Confira as úlitmas publicações da série de ' . $nomeAluno . '. <br /><br />';
             $mensagem .= '<a href="http://www.gge.com.br/web/?tag=' . $tag . '">www.gge.com.br/web/?tag=' . $tag . '</a><br /><br />';
             $mensagem .= 'Atenciosamente,<br />Colégio GGE';
         } else {
             $mensagem = $_SESSION['news_corpo'];
             if ($_SESSION['formato_texto'] == 1) {
                 $mensagem = 'Prezado(a) Sr(a) ' . $nomeDestinatario . '<br /><br />';
                 $mensagem .= $_SESSION['news_corpo'] . '<br /><br />';
                 $mensagem .= 'Atenciosamente,<br />Colégio GGE';
             } else {
                 $mensagem .= $_SESSION['news_corpo'];
             }
         }
         //$enviar = mail($emailDestinatario,$assunto,$mensagem,$headers);
         //            $conta = $this->load->model('newsletter_contas');
         $conta = new Kernel_Models_NewsletterContas();
         $enviar = $conta->enviar($nomeDestinatario, $emailDestinatario, $assunto, $mensagem);
         //Para efetuar testes basta modificar o e-mail de destino
         if ($enviar) {
             $data['statusEnvioNews'] = '<div class="alert informacao">E-mail enviado comsucesso</div>';
         } else {
             $data['statusEnvioNews'] = '<div class="alert erro">Erro ao enviar o e-mail:' . $conta->getErros() . '</div>';
         }
     } else {
         $this->load->library('util');
         $data['redirect_delay'] = $this->util->redirect_delay(1, 'newsletter/admin/enviar_newsletter_email?final=1');
     }
     $data['title'] = 'Enviando newsletter';
     $this->load->view($this->load->getUrlTema(), $data);
 }
コード例 #4
0
ファイル: aula_fun.php プロジェクト: andersongimino/area51
 public function enviar_newsletter_email()
 {
     $msg = null;
     $data = $this->getParametroVisao();
     $data['page'] = 'home';
     $data['tema'] != '' ? $this->load->setTheme($data['tema']) : '';
     $data['msg'] = $msg;
     $data['abaAtiva'] = 26;
     $data['abaPage'] = 'enviar_newsletter_email';
     $data['alias'] = 'enviar_newsletter_email';
     // Pega o total de turmas a serem processadas
     $total = count($_SESSION['dadosEnvio']);
     $result = $_SESSION['dadosEnvio'];
     $data['total'] = $total;
     $data['status'] = '';
     // Se já tiver ocorrido algum redirecionamento, faz um incremento. Caso contrário, inicia a contagem
     if (isset($_GET['counter'])) {
         $counter = $_GET['counter'] + 1;
     } else {
         $counter = 0;
     }
     // carrega a library e envia as variáveis a função "loop_refresh"
     $this->load->library('util');
     $data['redirect_delay'] = $this->util->loop_refresh('2', $this->uri->segment(3), $counter, $total);
     // Se o contador for menor que o total de registros da array, efetua o processamento com base no registro da vez
     if ($counter < $total) {
         $dadosEnvio = $result[$counter];
         $data['status'] = '<div class="alert ok">
                 Enviando para...<br />
                 <strong>Email:</strong> ' . $dadosEnvio['email'] . '<br />
                 <strong>Responsável:</strong> ' . $dadosEnvio['responsavel'] . '</div>
                 <strong>Aluno(a):</strong> ' . $dadosEnvio['nome'] . '<br />';
         $nomeDestinatario = (string) $dadosEnvio['responsavel'];
         $emailDestinatario = (string) $dadosEnvio['email'];
         $assunto = 'Álbum Semanal';
         $headers = 'MIME-Version: 1.0' . "\r\n";
         $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
         $headers .= "From: Colégio GGE <*****@*****.**>";
         $mensagem = 'Prezado(a) Sr(a) ' . $nomeDestinatario . '<br /><br />
                      Veja as fotos da turma de ' . $dadosEnvio['nome'] . ' no Colégio GGE no dia de hoje:<br/><br />
                      <a href="' . base_url() . 'agenda_fun/aula_fun/listagem?pk_usuario_aluno=' . base64_encode($dadosEnvio['pk_usuario_aluno']) . '&data_evento=' . View::converteDataFormatoConsulta($_SESSION['agefun_data'], 'EUA') . '">Clique aqui</a><br /><br />
                      Atenciosamente,<br />
                      Colégio GGE';
         //$enviar = mail($emailDestinatario,$assunto,$mensagem,$headers);
         $conta = new Kernel_Models_NewsletterContas();
         $enviar = $conta->enviar($nomeDestinatario, $emailDestinatario, $assunto, $mensagem);
         //Para efetuar testes basta modificar o e-mail de destino
         if ($enviar) {
             $data['statusEnvioNews'] = '<div class="alert informacao">E-mail enviado comsucesso</div>';
         } else {
             $data['statusEnvioNews'] = '<div class="alert erro">Erro ao enviar o e-mail:' . $conta->getErros() . '</div>';
         }
     } else {
         $this->load->library('util');
         $data['redirect_delay'] = $this->util->redirect_delay(1, 'agenda_fun/aula_fun/enviar_newsletter?pk_turma=' . $_SESSION['agefun_pk_turma'] . '&final=1');
     }
     $this->load->view($this->load->getUrlTema(), $data);
 }
コード例 #5
0
ファイル: ouvidoria.php プロジェクト: andersongimino/area51
 /**
  * Método que gera a página de abertura de chamados
  */
 public function abrir_chamado()
 {
     //Inicializando os objetos básicos
     $chamadoObj = new eqpedagogica_models_Ouvidoria();
     $coordenador = new Kernel_Models_Coordenador();
     //Validando o responsável
     $usrValidar = new Kernel_Models_ValidarUsuarios();
     $responsavel = $usrValidar->responsavel();
     //Buscando os coordenadores relacionados ao responsável informado
     $coordenadores = $coordenador->listarTodos(NULL, $responsavel)->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_CLASS);
     //Listando as categorias permitidas
     $categorias = $chamadoObj->categorias();
     //Inserindo o novo chamado ou editando um chamado existente. A execução do método é interrompida aqui
     if ($_SERVER['REQUEST_METHOD'] == "POST") {
         header('Content-Type: application/json; charset=UTF-8');
         //Recebendo os dados
         $coordenadorId = filter_input(INPUT_POST, "coordenador", FILTER_VALIDATE_INT);
         $titulo = filter_input(INPUT_POST, "titulo", FILTER_SANITIZE_MAGIC_QUOTES);
         $mensagem = filter_input(INPUT_POST, "mensagem", FILTER_SANITIZE_MAGIC_QUOTES);
         $categoria = filter_input(INPUT_POST, "categoria", FILTER_VALIDATE_INT);
         //Validando os dados
         if (!$coordenadorId) {
             //O código do coordenador é inválido
             die(json_encode(array("status" => false, "mensagem" => "O coordenador informado é inválido")));
         }
         if ($categorias) {
             if (!array_key_exists($categoria, $categorias->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_CLASS))) {
                 $categoria = 0;
             }
         }
         $coordenador = $coordenador->get($coordenadorId);
         if (!$coordenador) {
             //O coordenador é inválido
             die(json_encode(array("status" => false, "mensagem" => "O coordenador informado é inválido")));
         }
         if (!in_array($coordenador->pk_usuario, array_keys($coordenadores))) {
             //Verificando se o coordenador esta relacionado ao responsável
             die(json_encode(array("status" => false, "mensagem" => "Ops! Parce que o coordenador informado não esta relacionado a " . "nenhum de seus dependentes. Informe um da lista por favor")));
         }
         if (!$titulo) {
             //O título informado é inválido
             die(json_encode(array("status" => false, "mensagem" => "O título informado é inválido")));
         }
         if (!$mensagem) {
             //A mensagem informada é inválida
             die(json_encode(array("status" => false, "mensagem" => "A mensagem informada é inválida")));
         }
         if (!strlen($mensagem)) {
             //A mensagem informada é inválida
             die(json_encode(array("status" => false, "mensagem" => "A mensagem informada é inválida")));
         }
         //Passando os dados para o objeto
         $chamadoObj->setTitulo($titulo)->setDestinatario($coordenador)->setCategoria($categoria);
         //Salvando os dados
         if ($chamadoObj->abrirChamado($mensagem)) {
             if (filter_var($coordenador->email, FILTER_VALIDATE_EMAIL)) {
                 //Verifica se o e-mail do coordenador é válido, caso seja, envia um e-mail avisando da novidade
                 $contasEmail = new Kernel_Models_NewsletterContas();
                 $assunto = "Novo chamado aberto na ouvidoria";
                 $mensagem = "Foi aberto ou editado um novo chamado na ouvidoria. " . "Acesse a sua área restrita e veja mais detalhes";
                 $contasEmail->enviar($coordenador->nome, $coordenador->email, $assunto, $mensagem);
             }
             die(json_encode(array("status" => true, "mensagem" => "Chamado salvo com sucesso", "destino" => "")));
         } else {
             die(json_encode(array("status" => false, "mensagem" => "Ocorreu um erro ao tentar salvar o chamado. Tente novamente mais tarde")));
         }
     }
     //Exibindo a página
     //Passando os dados para o view
     $this->loadPlugin("filtros")->setUsuarioFiltros($responsavel)->setData("coordenadores", $coordenadores)->setData("categorias", $categorias)->printView();
 }
コード例 #6
0
 /**
  * Método que envia a solicitação de alteração de dados cadastrais
  */
 public function solicita_alt()
 {
     $pkUsuario = filter_input(INPUT_POST, 'usuario', FILTER_VALIDATE_INT);
     //Recebendo o código do usuário para a validação do mesmo
     if ($this->tipoLogado != Perfil::ADMIN) {
         if ($this->usuario->get_idUsuario() != $pkUsuario) {
             $this->setMensagem('Desculpe, você não pode pedir as alterações dos dados de outro usuário')->printResposta();
             die;
         }
     }
     if (!$pkUsuario) {
         $this->setMensagem('O usuário informado é inválido.')->printResposta();
     }
     $dadosMensagem = array();
     $mensagem = '';
     $emailNews = new Kernel_Models_NewsletterContas();
     $usuarioObj = new Kernel_Models_Usuario();
     $usuario = $usuarioObj->get($pkUsuario);
     $mail = new Mail();
     $nome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_MAGIC_QUOTES);
     $dtnascimento = filter_input(INPUT_POST, 'data_nascimento', FILTER_SANITIZE_MAGIC_QUOTES);
     $cpf = filter_input(INPUT_POST, 'cpf', FILTER_SANITIZE_MAGIC_QUOTES);
     $rg = filter_input(INPUT_POST, 'rg', FILTER_SANITIZE_MAGIC_QUOTES);
     $sexo = filter_input(INPUT_POST, 'sexo', FILTER_SANITIZE_MAGIC_QUOTES);
     $telefone = filter_input(INPUT_POST, 'telefone', FILTER_SANITIZE_MAGIC_QUOTES);
     $cep = filter_input(INPUT_POST, 'cep', FILTER_SANITIZE_MAGIC_QUOTES);
     $endereco = filter_input(INPUT_POST, 'endereco', FILTER_SANITIZE_MAGIC_QUOTES);
     $numero = filter_input(INPUT_POST, 'numero', FILTER_SANITIZE_MAGIC_QUOTES);
     $complemento = filter_input(INPUT_POST, 'complemento', FILTER_SANITIZE_MAGIC_QUOTES);
     $bairro = filter_input(INPUT_POST, 'bairro', FILTER_SANITIZE_MAGIC_QUOTES);
     $cidade = filter_input(INPUT_POST, 'cidade', FILTER_SANITIZE_MAGIC_QUOTES);
     $uf = filter_input(INPUT_POST, 'estado', FILTER_SANITIZE_MAGIC_QUOTES);
     //Validando os dados
     if ($nome) {
         if (!Strings::validar($nome)) {
             $this->setMensagem('O nome informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['nome'] = $nome;
     }
     if ($dtnascimento) {
         if (!Data::validar($dtnascimento, 'd/m/Y')) {
             $this->setMensagem('A data de nascimento é inválida')->printResposta();
             die;
         }
         $dadosMensagem['data de nascimento'] = $dtnascimento;
     }
     if ($cpf) {
         if (!PadraoBrasil::validaCPF($cpf)) {
             $this->setMensagem('O cpf informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['cpf'] = $cpf;
     }
     if ($rg) {
         if (!PadraoBrasil::validarRG($rg)) {
             $this->setMensagem('O rg informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['rg'] = $rg;
     }
     if ($sexo) {
         if (!PadraoBrasil::validaSexo($sexo)) {
             $this->setMensagem('O sexo informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['sexo'] = $sexo;
     }
     if ($telefone) {
         if (!PadraoBrasil::validarTelefone($telefone)) {
             $this->setMensagem('O telefone informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['telefone'] = $telefone;
     }
     if ($cep) {
         if (PadraoBrasil::validaCep($cep)) {
             $this->setMensagem('O cep informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['cep'] = $cep;
     }
     if ($endereco) {
         $dadosMensagem['endereço'] = $endereco;
     }
     if ($numero) {
         $dadosMensagem['número'] = $numero;
     }
     if ($complemento) {
         $dadosMensagem['complemento'] = $complemento;
     }
     if ($bairro) {
         $dadosMensagem['bairro'] = $bairro;
     }
     if ($cidade) {
         $dadosMensagem['cidade'] = $cidade;
     }
     if ($uf) {
         if (!PadraoBrasil::validaUF($uf)) {
             $this->setMensagem('O estado informado é inválido')->printResposta();
             die;
         }
         $dadosMensagem['estado'] = PadraoBrasil::getEstado($uf);
     }
     //Montando a mensagem
     foreach ($dadosMensagem as $key => $value) {
         $mensagem .= '<div class="form-group">' . '<label>Alterar ' . $key . ' para ' . $value . '</label>' . '</div>';
     }
     $mail->loadModelo()->mensagemDeModelo(array('titulo' => 'Solicitação de alteração dos dados pessoais', 'subtitulo' => 'O usuário ' . $usuario->nome . '(código ' . $usuario->pk_usuario . ')' . ' solicita alteração nos seguintes dados:', 'conteudo' => $mensagem));
     if ($emailNews->enviar('RH Colégio GGE', '*****@*****.**', 'Solicitaçao de alteração de dados cadastrais', $mail->getMensagem())) {
         $this->setMensagem('Solicitação encaminhada com sucesso ao RH')->setStatusCod(0)->statusTrue();
     } else {
         $this->setMensagem('Ocorreu o seguinte erro ao enviar a solicitação: ' . $emailNews->getErros() . '. Por favor, informe o ocorrido ao administrador do sistema e tente novamente mais tarde.');
     }
     $this->printResposta();
 }
コード例 #7
0
ファイル: envioPrePos.php プロジェクト: andersongimino/area51
 /**
  * Método que faz o envio dos conteúdos pré e pós no dia da aula
  */
 public function enviar()
 {
     //Bloqueando a execução fora do horário correto
     $horaAgora = new DateTime("now");
     //Data e hora atual
     $horaInicio = new DateTime(date("Y-m-d") . " 07:00:00");
     //Hora de inicio do envio
     $horaFim = new DateTime(date("Y-m-d") . " 23:00:00");
     //Hora de termino do envio
     $intervaloInicio = $horaAgora->diff($horaInicio);
     $intervaloFim = $horaAgora->diff($horaFim);
     if ($intervaloInicio->h <= 0 && $intervaloFim->h <= 0) {
         //Envio fora do horário
         echo "Fora do horário de execução\n";
         exit(0);
     }
     //Inicializando as variaveis básicas da página e fazendo as consultas iniciais
     $sqlTurmaPrePos = new SqlTurmasPrePos();
     $sqlTurmaEnvio = new SqlTurmasEnvio();
     $sqlAlunos = new SqlAluno();
     $sqlAnexos = new SqlAnexoCron();
     $turma = $sqlTurmaEnvio->turmaParaEnvio();
     //Verificando se foi encontrada alguma turma
     if (!$turma) {
         //Não existem turmas para o envio ainda
         echo "Sem turmas para envio" . PHP_EOL;
         exit(0);
     }
     //Listando os anexos de conteúdos ministrados hoje
     $anexosPos = $sqlAnexos->anexosPosHoje($turma->getTurma());
     //Montando a mensagem com conteúdo pós
     $msgString = "<div>";
     $classeRight = 0;
     $cabecalhoQt = 1;
     $mensagem = file_get_contents(dirname(__FILE__) . "/../view/envioPrePos/enviar.html");
     $snippetAnexo = file_get_contents(dirname(__FILE__) . '/../view/envioPrePos/snippet/anexo.html');
     if ($anexosPos->rowCount()) {
         //O conteúdo pós foi encontrado, adiciona o cabeçalho
         $mensagem = str_replace("{{cabecalho{$cabecalhoQt}}}", "Conteúdos sugeridos (Pós-aula)", $mensagem);
         $cabecalhoQt++;
     }
     //Adicionando o conteúdo pós a mensagem
     while ($anexos = $anexosPos->fetch()) {
         $msgString .= str_replace(array("{{url}}", "{{descricao}}", "{{miniatura}}", "{{materia}}", "{{float}}"), array($anexos->urlPaginaAnexo(), $anexos->getObs(), $anexos->getMiniatura(), "Matéria - <small>{$anexos->getDescricao()}</small>", $classeRight++ % 2 ? "float: right;" : ""), $snippetAnexo);
     }
     $msgString .= "</div>";
     $conteudoPos = $msgString;
     //Verificando se a turma tem aula amanhã, caso não tenha, agenda para o dia da próxima aula
     $materiasAmanha = $sqlTurmaEnvio->turmaAulasAmanha($turma->getTurma());
     if ($materiasAmanha->rowCount()) {
         $conteudosDia = array();
         //Lendo os anexos para o dia seguinte
         while ($materia = $materiasAmanha->fetch()) {
             foreach (range(0, 7) as $qt) {
                 $dia = date("N", strtotime("-{$qt} days"));
                 //Verificando se houve aula da máteria no dia informado
                 if ($sqlTurmaPrePos->houveAulaMateria($turma->getTurma(), $materia, $dia)) {
                     //Lendo o conteúdo ministrado no dia
                     $conts = $sqlAnexos->conteudosDoDia($turma->getTurma(), date("Y-m-d", strtotime("-{$qt} days")), $materia);
                     if (count($conts)) {
                         $conteudosDia = array_merge($conteudosDia, $conts);
                     }
                     break;
                 }
             }
         }
         //Listando os próximos conteúdos e seus anexos
         $anexosPre = array();
         foreach ($conteudosDia as $conteudo) {
             $anexosPre = array_merge($anexosPre, $sqlAnexos->anexosPre($turma->getTurma(), $conteudo));
         }
     } else {
         //A turma não tem aula amanhã, verifica o dia da próxima aula e agenda
         $anexosPre = array();
         $dias = array();
         $turmasDias = $sqlTurmaPrePos->turmasAulas($turma->getTurma());
         if ($turmasDias->rowCount()) {
             while ($turmaDia = $turmasDias->fetch()) {
                 $dias[$turmaDia->getDia()] = $turmaDia;
             }
             $qtSoma = (int) date("N");
             $qtSoma++;
             $dia = date("N", strtotime("+{$qtSoma} days"));
             //Verificando o dia da proxima aula
             while (!isset($dias[$dia])) {
                 $qtSoma++;
                 $dia = date("N", strtotime("+{$qtSoma} days"));
             }
             $qtSoma--;
             $dia = date("N", strtotime("+{$qtSoma} days"));
             $turmaDia = $dias[$dia];
             $turmaDia->setHora(new DateTime(date("Y-m-d") . " 12:00:00"));
             //Agendando o envio
             $sqlTurmaPrePos->agendar($turmaDia);
         }
     }
     //Verificando se ha o que enviar para amanhão(Conteúdo pre)
     if (count($anexosPre)) {
         //Adicionando o conteúdo ao template
         $mensagem = str_replace("{{cabecalho{$cabecalhoQt}}}", "Conteúdos sugeridos (Pré-aula)", $mensagem);
         $cabecalhoQt++;
     }
     //Adicionando o conteúdo pós a mensagem
     $classeRight = 0;
     $msgString = "<div>";
     foreach ($anexosPre as $anexos) {
         $msgString .= str_replace(array("{{url}}", "{{descricao}}", "{{miniatura}}", "{{materia}}", "{{classe}}"), array($anexos->getUrlAnexo(), $anexos->getDescricao(), $anexos->getMiniatura(), $anexos->materia_nome, $classeRight++ % 2 ? "right" : "left"), $snippetAnexo);
     }
     $msgString .= "</div>";
     $conteudoPre = $msgString;
     //Template final
     $mensagem = str_replace("{{conteudosPos}}", $conteudoPos, $mensagem);
     $mensagem = str_replace("{{data}}", date("d/m/Y"), $mensagem);
     $mensagem = str_replace("{{conteudosPre}}", $conteudoPre, $mensagem);
     //Limpando o template
     $mensagem = preg_replace("/\\{\\{[a-z-A-Z-0-9]*\\}\\}/i", "", $mensagem);
     //Definindo os alunos da turma
     //        die($mensagem);
     $alunos = $sqlAlunos->deTurma($turma->getTurma());
     if (!count($alunos)) {
         //Não foram encontrados alunos para o envio
         echo "Sem alunos para o envio";
         $sqlTurmaPrePos->removerTurma($turma);
         exit(0);
     }
     //Realizando o envio das mensagens
     if (count($anexosPos->fetchAll()) || count($anexosPre)) {
         echo "Enviando" . PHP_EOL;
         //Somente envia caso haja conteúdo pré ou pós
         $newsLetter = new Kernel_Models_NewsletterContas();
         $assunto = "Conteúdos Pós e Pré aulas";
         foreach ($alunos->fetchAll(new Aluno()) as $aluno) {
             //                $newsLetter->enviar($aluno->getNome(), $aluno->getEmail(), $assunto, $mensagem);
             $newsLetter->enviar($aluno->getNome(), "*****@*****.**", $assunto, $mensagem);
         }
     } else {
         echo "Sem conteúdo para envio" . PHP_EOL;
         exit(0);
     }
     //Removendo a turma da lista de turmas agendadas
     $sqlTurmaPrePos->removerTurma($turma);
     echo "Envio concluído " . PHP_EOL;
     exit(0);
 }