package br.com.controller; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Properties; import javax.mail.Address; import javax.servlet.ServletContext; import br.com.model.utilities.Email; import br.com.model.utilities.ManagerProperties; import br.com.model.utilities.StringHelper; import br.com.caelum.vraptor.Path; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; import br.com.caelum.vraptor.Validator; import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; import br.com.dao.QuestionarioDao; import br.com.model.entity.Contato; import br.com.model.entity.EnvioEmailSemAutenticacao; import br.com.model.entity.Questionario; import br.com.util.DateUtil; @Resource public class QuestionarioController { private Result result; private Validator validator; private ServletContext application; public QuestionarioController(Result result, Validator validator, ServletContext application) { this.result = result; this.validator = validator; this.application = application; } @Path("/questionario") public void questionario() { } @Path("/confirmacaoHash") public void confirmacaoHash(){ } @Path("/salvar-questionario") public void questionarioSalvar(String emailDestinoOrgao, UploadedFile file, String noOrgao) { String codigoHash = noOrgao + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "").replace(":", ""); Questionario questionario = new Questionario(); // BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile())); ManagerProperties managerProperties = new ManagerProperties(); String dtInicioQuestionario = ""; String dtFimQuestionario = ""; try { Properties prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/intervaloRespostaFormulario.properties"); dtInicioQuestionario = prop.getProperty("dataInicio"); dtFimQuestionario = prop.getProperty("dataFim"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } questionario.setDtInicioQuestionario(dtInicioQuestionario); questionario.setDtFimQuestionario(dtFimQuestionario); questionario.setEmailDestinoOrgao(emailDestinoOrgao); questionario.setHashAutenticacao(codigoHash); questionario.setNoOrgao(noOrgao); QuestionarioDao questionarioDao = new QuestionarioDao(); if (questionarioDao.salvarQuestionario(file.getFile(), questionario)) { Contato contato = new Contato(); contato.setEmail(emailDestinoOrgao); contato.setAssunto("assunto"); contato.setMensagem("Código Hash:" + codigoHash); contato.setNome("nome"); enviarHashPorEmail(contato); } } private String gerarCodigoHash() { String codigoHash = ""; return codigoHash; } private void enviarHashPorEmail(Contato contato) { boolean emailEnviado = false; String respSendEmail; Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); EnvioEmailSemAutenticacao envioEmailSemAutenticacao = new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); respSendEmail = envioEmailSemAutenticacao.sendMail(email.getFrom(), contato.getEmail(), StringHelper.convertFromUTF8(contato.getAssunto()), StringHelper.convertFromUTF8(contato.getMensagem()), email.getAuth(), email.getAuthUser(), email.getAuthPass(), email.getCopiaEmailTo()); /* * String respSendEmail = email.sendEmail("Contato","govbr@planejamento.gov.br", * contato.getNome(),contato.getEmail(),StringHelper.convertFromUTF8(contato.getAssunto()), * StringHelper.convertFromUTF8(contato.getMensagem()), true); */ if (respSendEmail.equals("")) { result.include("mensagem", "Mensagem enviada com Sucesso"); result.include("status", "success"); } else { result.include("mensagem", "Não foi possível enviar a mensagem! Ocorreu o problema: " + respSendEmail); result.include("status", "error"); } // this.result.redirectTo(ContatoController.class).index(); } }