From 2764761edc73ea2db57c1e03290cb10c63b2318a Mon Sep 17 00:00:00 2001 From: gibransodre Date: Wed, 9 Nov 2016 09:26:33 -0200 Subject: [PATCH] Correção da formatação de envio de email. --- src/br/com/controller/QuestionarioController.java | 217 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------ src/br/com/model/entity/EnvioEmailSemAutenticacao.java | 17 ++++++++++++----- src/br/com/util/DateUtil.java | 21 +++++++++++++++++++++ 3 files changed, 130 insertions(+), 125 deletions(-) diff --git a/src/br/com/controller/QuestionarioController.java b/src/br/com/controller/QuestionarioController.java index 764c097..d3fd58f 100644 --- a/src/br/com/controller/QuestionarioController.java +++ b/src/br/com/controller/QuestionarioController.java @@ -2,7 +2,9 @@ package br.com.controller; import java.io.IOException; import java.security.NoSuchAlgorithmException; +import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Properties; @@ -46,50 +48,56 @@ public class QuestionarioController { public void questionario() { } - + @Path("/confirmacaoHash") - public void confirmacaoHash(){ - + public void confirmacaoHash() { + } - + @Path("/salvar-questionario") - public void questionarioSalvar(String autorizacao, String noOrgao, String nomeResponsavel, String cargoResponsavel, String emailDestinoOrgao, String telefoneResponsavel, UploadedFile file) { - - + public void questionarioSalvar(String autorizacao, String noOrgao, String nomeResponsavel, + String cargoResponsavel, String emailDestinoOrgao, String telefoneResponsavel, + UploadedFile file) { + + AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao(); String mensagemEnvio = ""; - - if(autorizacaoGeracaoHashDao.verificarAutorizacaoGeracaoHash(path, autorizacao)) - { + + if (autorizacaoGeracaoHashDao.verificarAutorizacaoGeracaoHash(path, autorizacao)) { String[] codigo = emailDestinoOrgao.split("@"); - String codigoHash = codigo[0] + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "").replace(":", ""); - - + String codigoHash = + codigo[0] + + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "") + .replace(":", ""); + + Questionario questionario = new Questionario(); // BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile())); - ManagerProperties managerProperties = new ManagerProperties(); - + ManagerProperties managerProperties = new ManagerProperties(); + String dtInicioQuestionario = ""; String dtFimQuestionario = ""; String hashAutenticacao = null; Properties prop = null; - + try { - prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/respostaFormulario.properties"); - - dtInicioQuestionario = prop.getProperty("dataInicio"); - dtFimQuestionario = prop.getProperty("dataFim"); + prop = + managerProperties.getProp(this.application.getRealPath("") + + "/WEB-INF/respostaFormulario.properties"); + + dtInicioQuestionario = prop.getProperty("dataInicio"); + dtFimQuestionario = prop.getProperty("dataFim"); hashAutenticacao = GeradorCodigoHash.gerarHash(codigoHash); - - } catch (IOException e) { + + } catch (IOException e) { e.printStackTrace(); - } catch (NoSuchAlgorithmException e) { - - e.printStackTrace(); - } - + } catch (NoSuchAlgorithmException e) { + + e.printStackTrace(); + } + questionario.setDtInicioQuestionario(dtInicioQuestionario); questionario.setDtFimQuestionario(dtFimQuestionario); questionario.setEmailDestinoOrgao(emailDestinoOrgao); @@ -100,122 +108,92 @@ public class QuestionarioController { questionario.setNoOrgao(noOrgao); QuestionarioDao questionarioDao = new QuestionarioDao(); - // List corpoEmail = new ArrayList(); + // List corpoEmail = new ArrayList(); if (questionarioDao.salvarQuestionario(path, file.getFile(), questionario)) { - - - /* corpoEmail.add("Prezado(a),"); - corpoEmail.add("senhor(a) "+ nomeResponsavel +", " + cargoResponsavel + ", do "+ noOrgao +", conforme solicitado, o acesso "); - corpoEmail.add("ao FAD para o preenchimento de informações sobre a atual situação da "); - corpoEmail.add("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser "); - corpoEmail.add("realizado pelo endereço "+ prop.getProperty("enderecoFad") + " utilizando o código de "); - corpoEmail.add("acesso: "+ hashAutenticacao +" ."); - corpoEmail.add(""); - corpoEmail.add("A guarda do código de acesso, bem como as informações prestadas são de sua "); - corpoEmail.add("inteira responsabilidade."); - corpoEmail.add(""); - corpoEmail.add("O FAD poderá ser preenchido no período "+ prop.getProperty("dataInicio") + " a "+ prop.getProperty("dataFim") +", data limite "); - corpoEmail.add("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de "); - corpoEmail.add("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e "); - corpoEmail.add("publicado no sítio ou portal eletrônico do órgão ou entidade.​"); - corpoEmail.add(""); - corpoEmail.add("Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal "); - corpoEmail.add(prop.getProperty("enderecoFad") + "."); - corpoEmail.add(""); - corpoEmail.add("Respeitosamente,"); - corpoEmail.add(""); - corpoEmail.add("Ministério do Planejamento, Desenvolvimento e Gestão"); - corpoEmail.add("Secretaria de Tecnologia da Informação"); - corpoEmail.add("Departamento de Governo Digital "); - corpoEmail.add("Coordenação-Geral de Padrões de Governo Digital"); - corpoEmail.add(prop.getProperty("emailContato")); - corpoEmail.add(""); - - String[] telefoneContato = prop.getProperty("telefoneContato").split(","); - - for (String numeroTelefone : telefoneContato) { - corpoEmail.add(numeroTelefone); - }*/ - + StringBuffer mensagem = new StringBuffer(); - - mensagem.append("Prezado(a),\n"); - mensagem.append("senhor(a) "+ nomeResponsavel +", " + cargoResponsavel + ", do "+ noOrgao +", conforme solicitado, o acesso \n"); - mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da \n"); - mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser \n"); - mensagem.append("realizado pelo endereço "+ prop.getProperty("enderecoFad") + " utilizando o código de \n"); - mensagem.append("acesso: "+ hashAutenticacao +" .\n\n"); - - mensagem.append("A guarda do código de acesso, bem como as informações prestadas são de sua \n"); - mensagem.append("inteira responsabilidade.\n\n"); - - mensagem.append("O FAD poderá ser preenchido no período "+ prop.getProperty("dataInicio") + " a "+ prop.getProperty("dataFim") +", data limite \n"); - mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de \n"); - mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e \n"); - mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​\n\n"); - - mensagem.append("Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal \n"); - mensagem.append(prop.getProperty("enderecoFad") + ".\n\n"); - - mensagem.append("Respeitosamente,\n\n"); - - mensagem.append("Ministério do Planejamento, Desenvolvimento e Gestão\n"); - mensagem.append("Secretaria de Tecnologia da Informação\n"); - mensagem.append("Departamento de Governo Digital \n"); - mensagem.append("Coordenação-Geral de Padrões de Governo Digital\n"); - mensagem.append(prop.getProperty("emailContato") + "\n"); - + + mensagem.append("Prezado(a),
"); + mensagem.append("

Senhor(a) " + nomeResponsavel + ", " + cargoResponsavel + ", do " + + noOrgao + ", conforme solicitado, o acesso "); + mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da "); + mensagem + .append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser "); + mensagem.append("realizado pelo endereço " + "" + prop.getProperty("enderecoFad") + "" + + " utilizando o código de "); + mensagem.append("acesso: " + hashAutenticacao + " .

"); + + mensagem + .append("

A guarda do código de acesso, bem como as informações prestadas são de sua "); + mensagem.append("inteira responsabilidade.

"); + + mensagem.append("

O FAD poderá ser preenchido no período " + + DateUtil.dataHoraFormatadaDiaMesAno(prop.getProperty("dataInicio")) + " a " + + DateUtil.dataHoraFormatadaDiaMesAno(prop.getProperty("dataFim")) + ", data limite "); + mensagem + .append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de "); + mensagem + .append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e "); + mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​

"); + + mensagem + .append("

Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal "); + mensagem.append("" + prop.getProperty("enderecoFad") + ".

"); + + mensagem.append("

Respeitosamente,

"); + + mensagem.append("

Ministério do Planejamento, Desenvolvimento e Gestão "); + mensagem.append("Secretaria de Tecnologia da Informação "); + mensagem.append("Departamento de Governo Digital "); + mensagem.append("Coordenação-Geral de Padrões de Governo Digital "); + mensagem.append(prop.getProperty("emailContato") + "
"); + String[] telefoneContato = prop.getProperty("telefoneContato").split(","); - + for (String numeroTelefone : telefoneContato) { - mensagem.append(numeroTelefone + "\n"); + mensagem.append(numeroTelefone + "
"); } - + mensagem.append("

"); + Contato contato = new Contato(); contato.setEmail(emailDestinoOrgao); - contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso"); - contato.setMensagem(StringHelper.convertFromUTF8(mensagem.toString())); + contato + .setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso"); + contato.setMensagem(mensagem.toString()); contato.setNome(nomeResponsavel); - if(enviarHashPorEmail(contato)) - { - mensagemEnvio = "Questionário salvo e enviado por email com suceso!"; - }else - { - mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!"; + if (enviarHashPorEmail(contato)) { + mensagemEnvio = "Questionário salvo e enviado por email com suceso!"; + } else { + mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!"; } result.include("mensagemEnvio", mensagemEnvio); this.validator.add(new ValidationMessage("", "")); this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash(); - } - else - { + } else { mensagemEnvio = "Não foi possível salvar o questionário!"; result.include("mensagemEnvio", mensagemEnvio); this.validator.add(new ValidationMessage("", "")); this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash(); } - } - else - { + } else { mensagemEnvio = "É preciso autorização para salvar gerar código Hash!"; result.include("mensagemEnvio", mensagemEnvio); this.validator.add(new ValidationMessage("", "")); this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash(); } - - } -/* - private String gerarCodigoHash() { - String codigoHash = ""; + } - return codigoHash; - }*/ + /* + * private String gerarCodigoHash() { String codigoHash = ""; + * + * return codigoHash; } + */ private boolean enviarHashPorEmail(Contato contato) { - + boolean emailEnviado = false; @@ -225,13 +203,12 @@ public class QuestionarioController { EnvioEmailSemAutenticacao envioEmailSemAutenticacao = new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); - - + + respSendEmail = envioEmailSemAutenticacao.sendMailComCopia(email.getFrom(), contato.getEmail(), - StringHelper.convertFromUTF8(contato.getAssunto()), - StringHelper.convertFromUTF8(contato.getMensagem()), email.getAuth(), - email.getAuthUser(), email.getAuthPass(), email.getCopiaEmailTo()); + contato.getAssunto(), contato.getMensagem(), email.getAuth(), email.getAuthUser(), + email.getAuthPass(), email.getCopiaEmailTo()); /* diff --git a/src/br/com/model/entity/EnvioEmailSemAutenticacao.java b/src/br/com/model/entity/EnvioEmailSemAutenticacao.java index 44f96fa..b53a2d7 100644 --- a/src/br/com/model/entity/EnvioEmailSemAutenticacao.java +++ b/src/br/com/model/entity/EnvioEmailSemAutenticacao.java @@ -11,6 +11,11 @@ import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; +import org.apache.commons.codec.StringEncoder; +import org.apache.commons.io.output.StringBuilderWriter; + +import br.com.model.utilities.StringHelper; + public class EnvioEmailSemAutenticacao { private String mailSMTPServer; @@ -143,10 +148,11 @@ public class EnvioEmailSemAutenticacao { // Setando o destinat�rio + msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to)); - msg.setReplyTo(new javax.mail.Address[] - { - new javax.mail.internet.InternetAddress(copiaEmailTo) + msg.reply(true); + msg.setReplyTo(new InternetAddress[] { + new InternetAddress(copiaEmailTo) }); // Setando a origem do email @@ -156,8 +162,9 @@ public class EnvioEmailSemAutenticacao { // Setando o conte�do/corpo do email //for (String message : corpoEmail) { - msg.setText(corpoEmail); //setContent(message, "text/html; charset=utf-8" + "\n"); - //} + msg.setContent(corpoEmail, "text/html; charset=utf-8"); + + //} } catch (Exception e) { diff --git a/src/br/com/util/DateUtil.java b/src/br/com/util/DateUtil.java index c28c017..aa7e171 100644 --- a/src/br/com/util/DateUtil.java +++ b/src/br/com/util/DateUtil.java @@ -17,5 +17,26 @@ public class DateUtil { Date dataFormatada = dateFormat.parse(data); return dataFormatada; } + + public static String dataHoraFormatadaDiaMesAno(String dataParametro) { + + Date dataParametroConvertida = new Date(); + + SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + String dataFormatadaCorreta = null; + + try { + dataParametroConvertida = dataFormat.parse(dataParametro); + dataFormatadaCorreta = sdf.format(dataParametroConvertida); + } catch (ParseException e) { + e.printStackTrace(); + } + + + return dataFormatadaCorreta; + } + + } -- libgit2 0.21.2