Commit 2764761edc73ea2db57c1e03290cb10c63b2318a

Authored by gibransodre
1 parent 592200e2
Exists in master

Correção da formatação de envio de email.

src/br/com/controller/QuestionarioController.java
... ... @@ -2,7 +2,9 @@ package br.com.controller;
2 2  
3 3 import java.io.IOException;
4 4 import java.security.NoSuchAlgorithmException;
  5 +import java.text.SimpleDateFormat;
5 6 import java.util.ArrayList;
  7 +import java.util.Date;
6 8 import java.util.List;
7 9 import java.util.Properties;
8 10  
... ... @@ -46,50 +48,56 @@ public class QuestionarioController {
46 48 public void questionario() {
47 49  
48 50 }
49   -
  51 +
50 52 @Path("/confirmacaoHash")
51   - public void confirmacaoHash(){
52   -
  53 + public void confirmacaoHash() {
  54 +
53 55 }
54   -
  56 +
55 57  
56 58 @Path("/salvar-questionario")
57   - public void questionarioSalvar(String autorizacao, String noOrgao, String nomeResponsavel, String cargoResponsavel, String emailDestinoOrgao, String telefoneResponsavel, UploadedFile file) {
58   -
59   -
  59 + public void questionarioSalvar(String autorizacao, String noOrgao, String nomeResponsavel,
  60 + String cargoResponsavel, String emailDestinoOrgao, String telefoneResponsavel,
  61 + UploadedFile file) {
  62 +
  63 +
60 64 AutorizacaoGeracaoHashDao autorizacaoGeracaoHashDao = new AutorizacaoGeracaoHashDao();
61 65 String mensagemEnvio = "";
62   -
63   - if(autorizacaoGeracaoHashDao.verificarAutorizacaoGeracaoHash(path, autorizacao))
64   - {
  66 +
  67 + if (autorizacaoGeracaoHashDao.verificarAutorizacaoGeracaoHash(path, autorizacao)) {
65 68 String[] codigo = emailDestinoOrgao.split("@");
66   - String codigoHash = codigo[0] + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "").replace(":", "");
67   -
68   -
  69 + String codigoHash =
  70 + codigo[0]
  71 + + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "")
  72 + .replace(":", "");
  73 +
  74 +
69 75 Questionario questionario = new Questionario();
70 76 // BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile()));
71 77  
72   - ManagerProperties managerProperties = new ManagerProperties();
73   -
  78 + ManagerProperties managerProperties = new ManagerProperties();
  79 +
74 80 String dtInicioQuestionario = "";
75 81 String dtFimQuestionario = "";
76 82 String hashAutenticacao = null;
77 83 Properties prop = null;
78   -
  84 +
79 85 try {
80   - prop = managerProperties.getProp(this.application.getRealPath("") + "/WEB-INF/respostaFormulario.properties");
81   -
82   - dtInicioQuestionario = prop.getProperty("dataInicio");
83   - dtFimQuestionario = prop.getProperty("dataFim");
  86 + prop =
  87 + managerProperties.getProp(this.application.getRealPath("")
  88 + + "/WEB-INF/respostaFormulario.properties");
  89 +
  90 + dtInicioQuestionario = prop.getProperty("dataInicio");
  91 + dtFimQuestionario = prop.getProperty("dataFim");
84 92 hashAutenticacao = GeradorCodigoHash.gerarHash(codigoHash);
85   -
86   - } catch (IOException e) {
  93 +
  94 + } catch (IOException e) {
87 95 e.printStackTrace();
88   - } catch (NoSuchAlgorithmException e) {
89   -
90   - e.printStackTrace();
91   - }
92   -
  96 + } catch (NoSuchAlgorithmException e) {
  97 +
  98 + e.printStackTrace();
  99 + }
  100 +
93 101 questionario.setDtInicioQuestionario(dtInicioQuestionario);
94 102 questionario.setDtFimQuestionario(dtFimQuestionario);
95 103 questionario.setEmailDestinoOrgao(emailDestinoOrgao);
... ... @@ -100,122 +108,92 @@ public class QuestionarioController {
100 108 questionario.setNoOrgao(noOrgao);
101 109  
102 110 QuestionarioDao questionarioDao = new QuestionarioDao();
103   - // List<String> corpoEmail = new ArrayList<String>();
  111 + // List<String> corpoEmail = new ArrayList<String>();
104 112 if (questionarioDao.salvarQuestionario(path, file.getFile(), questionario)) {
105   -
106   -
107   - /* corpoEmail.add("Prezado(a),");
108   - corpoEmail.add("senhor(a) "+ nomeResponsavel +", " + cargoResponsavel + ", do "+ noOrgao +", conforme solicitado, o acesso ");
109   - corpoEmail.add("ao FAD para o preenchimento de informações sobre a atual situação da ");
110   - corpoEmail.add("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser ");
111   - corpoEmail.add("realizado pelo endereço "+ prop.getProperty("enderecoFad") + " utilizando o código de ");
112   - corpoEmail.add("acesso: "+ hashAutenticacao +" .");
113   - corpoEmail.add("");
114   - corpoEmail.add("A guarda do código de acesso, bem como as informações prestadas são de sua ");
115   - corpoEmail.add("inteira responsabilidade.");
116   - corpoEmail.add("");
117   - corpoEmail.add("O FAD poderá ser preenchido no período "+ prop.getProperty("dataInicio") + " a "+ prop.getProperty("dataFim") +", data limite ");
118   - corpoEmail.add("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de ");
119   - corpoEmail.add("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e ");
120   - corpoEmail.add("publicado no sítio ou portal eletrônico do órgão ou entidade.​");
121   - corpoEmail.add("");
122   - corpoEmail.add("Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal ");
123   - corpoEmail.add(prop.getProperty("enderecoFad") + ".");
124   - corpoEmail.add("");
125   - corpoEmail.add("Respeitosamente,");
126   - corpoEmail.add("");
127   - corpoEmail.add("Ministério do Planejamento, Desenvolvimento e Gestão");
128   - corpoEmail.add("Secretaria de Tecnologia da Informação");
129   - corpoEmail.add("Departamento de Governo Digital ");
130   - corpoEmail.add("Coordenação-Geral de Padrões de Governo Digital");
131   - corpoEmail.add(prop.getProperty("emailContato"));
132   - corpoEmail.add("");
133   -
134   - String[] telefoneContato = prop.getProperty("telefoneContato").split(",");
135   -
136   - for (String numeroTelefone : telefoneContato) {
137   - corpoEmail.add(numeroTelefone);
138   - }*/
139   -
  113 +
140 114 StringBuffer mensagem = new StringBuffer();
141   -
142   - mensagem.append("Prezado(a),\n");
143   - mensagem.append("senhor(a) "+ nomeResponsavel +", " + cargoResponsavel + ", do "+ noOrgao +", conforme solicitado, o acesso \n");
144   - mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da \n");
145   - mensagem.append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser \n");
146   - mensagem.append("realizado pelo endereço "+ prop.getProperty("enderecoFad") + " utilizando o código de \n");
147   - mensagem.append("acesso: "+ hashAutenticacao +" .\n\n");
148   -
149   - mensagem.append("A guarda do código de acesso, bem como as informações prestadas são de sua \n");
150   - mensagem.append("inteira responsabilidade.\n\n");
151   -
152   - mensagem.append("O FAD poderá ser preenchido no período "+ prop.getProperty("dataInicio") + " a "+ prop.getProperty("dataFim") +", data limite \n");
153   - mensagem.append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de \n");
154   - mensagem.append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e \n");
155   - mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​\n\n");
156   -
157   - mensagem.append("Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal \n");
158   - mensagem.append(prop.getProperty("enderecoFad") + ".\n\n");
159   -
160   - mensagem.append("Respeitosamente,\n\n");
161   -
162   - mensagem.append("Ministério do Planejamento, Desenvolvimento e Gestão\n");
163   - mensagem.append("Secretaria de Tecnologia da Informação\n");
164   - mensagem.append("Departamento de Governo Digital \n");
165   - mensagem.append("Coordenação-Geral de Padrões de Governo Digital\n");
166   - mensagem.append(prop.getProperty("emailContato") + "\n");
167   -
  115 +
  116 + mensagem.append("Prezado(a),</br>");
  117 + mensagem.append("<p>Senhor(a) " + nomeResponsavel + ", " + cargoResponsavel + ", do "
  118 + + noOrgao + ", conforme solicitado, o acesso ");
  119 + mensagem.append("ao FAD para o preenchimento de informações sobre a atual situação da ");
  120 + mensagem
  121 + .append("acessibilidade dos ambientes digitais do seu órgão ou entidade deverá ser ");
  122 + mensagem.append("realizado pelo endereço " + "<a href=\"" + prop.getProperty("enderecoFad") + "\">" + prop.getProperty("enderecoFad") + "</a>"
  123 + + " utilizando o código de ");
  124 + mensagem.append("acesso: " + hashAutenticacao + " .</p>");
  125 +
  126 + mensagem
  127 + .append("<p>A guarda do código de acesso, bem como as informações prestadas são de sua ");
  128 + mensagem.append("inteira responsabilidade.</p>");
  129 +
  130 + mensagem.append("<p>O FAD poderá ser preenchido no período "
  131 + + DateUtil.dataHoraFormatadaDiaMesAno(prop.getProperty("dataInicio")) + " a "
  132 + + DateUtil.dataHoraFormatadaDiaMesAno(prop.getProperty("dataFim")) + ", data limite ");
  133 + mensagem
  134 + .append("para o envio do relatório circunstanciado (formulário de acessibilidade digital e plano de ");
  135 + mensagem
  136 + .append("trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério Público Federal e ");
  137 + mensagem.append("publicado no sítio ou portal eletrônico do órgão ou entidade.​</p>");
  138 +
  139 + mensagem
  140 + .append("<p>Maiores informações, dúvidas e sugestões devem ser encaminhadas pelo canal ");
  141 + mensagem.append("<a href=\"" + prop.getProperty("enderecoFad") + "\">" + prop.getProperty("enderecoFad") + "</a>.</p>");
  142 +
  143 + mensagem.append("<p>Respeitosamente,</p>");
  144 +
  145 + mensagem.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão ");
  146 + mensagem.append("Secretaria de Tecnologia da Informação ");
  147 + mensagem.append("Departamento de Governo Digital ");
  148 + mensagem.append("Coordenação-Geral de Padrões de Governo Digital ");
  149 + mensagem.append(prop.getProperty("emailContato") + "</br>");
  150 +
168 151 String[] telefoneContato = prop.getProperty("telefoneContato").split(",");
169   -
  152 +
170 153 for (String numeroTelefone : telefoneContato) {
171   - mensagem.append(numeroTelefone + "\n");
  154 + mensagem.append(numeroTelefone + "</br>");
172 155 }
173   -
  156 + mensagem.append("</p>");
  157 +
174 158 Contato contato = new Contato();
175 159 contato.setEmail(emailDestinoOrgao);
176   - contato.setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso");
177   - contato.setMensagem(StringHelper.convertFromUTF8(mensagem.toString()));
  160 + contato
  161 + .setAssunto("Formulário Eletrônico de Acessibilidade Digital (FAD) – Concessão de Acesso");
  162 + contato.setMensagem(mensagem.toString());
178 163 contato.setNome(nomeResponsavel);
179 164  
180   - if(enviarHashPorEmail(contato))
181   - {
182   - mensagemEnvio = "Questionário salvo e enviado por email com suceso!";
183   - }else
184   - {
185   - mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!";
  165 + if (enviarHashPorEmail(contato)) {
  166 + mensagemEnvio = "Questionário salvo e enviado por email com suceso!";
  167 + } else {
  168 + mensagemEnvio = "Questionário salvo, mas não foi possível enviar email!";
186 169 }
187 170 result.include("mensagemEnvio", mensagemEnvio);
188 171 this.validator.add(new ValidationMessage("", ""));
189 172 this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash();
190   - }
191   - else
192   - {
  173 + } else {
193 174 mensagemEnvio = "Não foi possível salvar o questionário!";
194 175 result.include("mensagemEnvio", mensagemEnvio);
195 176 this.validator.add(new ValidationMessage("", ""));
196 177 this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash();
197 178 }
198   - }
199   - else
200   - {
  179 + } else {
201 180 mensagemEnvio = "É preciso autorização para salvar gerar código Hash!";
202 181 result.include("mensagemEnvio", mensagemEnvio);
203 182 this.validator.add(new ValidationMessage("", ""));
204 183 this.validator.onErrorUsePageOf(QuestionarioController.class).confirmacaoHash();
205 184 }
206   -
207 185  
208   - }
209 186  
210   -/*
211   - private String gerarCodigoHash() {
212   - String codigoHash = "";
  187 + }
213 188  
214   - return codigoHash;
215   - }*/
  189 + /*
  190 + * private String gerarCodigoHash() { String codigoHash = "";
  191 + *
  192 + * return codigoHash; }
  193 + */
216 194  
217 195 private boolean enviarHashPorEmail(Contato contato) {
218   -
  196 +
219 197 boolean emailEnviado = false;
220 198  
221 199  
... ... @@ -225,13 +203,12 @@ public class QuestionarioController {
225 203  
226 204 EnvioEmailSemAutenticacao envioEmailSemAutenticacao =
227 205 new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));
228   -
229   -
  206 +
  207 +
230 208 respSendEmail =
231 209 envioEmailSemAutenticacao.sendMailComCopia(email.getFrom(), contato.getEmail(),
232   - StringHelper.convertFromUTF8(contato.getAssunto()),
233   - StringHelper.convertFromUTF8(contato.getMensagem()), email.getAuth(),
234   - email.getAuthUser(), email.getAuthPass(), email.getCopiaEmailTo());
  210 + contato.getAssunto(), contato.getMensagem(), email.getAuth(), email.getAuthUser(),
  211 + email.getAuthPass(), email.getCopiaEmailTo());
235 212  
236 213  
237 214 /*
... ...
src/br/com/model/entity/EnvioEmailSemAutenticacao.java
... ... @@ -11,6 +11,11 @@ import javax.mail.Transport;
11 11 import javax.mail.internet.InternetAddress;
12 12 import javax.mail.internet.MimeMessage;
13 13  
  14 +import org.apache.commons.codec.StringEncoder;
  15 +import org.apache.commons.io.output.StringBuilderWriter;
  16 +
  17 +import br.com.model.utilities.StringHelper;
  18 +
14 19  
15 20 public class EnvioEmailSemAutenticacao {
16 21 private String mailSMTPServer;
... ... @@ -143,10 +148,11 @@ public class EnvioEmailSemAutenticacao {
143 148  
144 149  
145 150 // Setando o destinat�rio
  151 +
146 152 msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
147   - msg.setReplyTo(new javax.mail.Address[]
148   - {
149   - new javax.mail.internet.InternetAddress(copiaEmailTo)
  153 + msg.reply(true);
  154 + msg.setReplyTo(new InternetAddress[] {
  155 + new InternetAddress(copiaEmailTo)
150 156 });
151 157  
152 158 // Setando a origem do email
... ... @@ -156,8 +162,9 @@ public class EnvioEmailSemAutenticacao {
156 162 // Setando o conte�do/corpo do email
157 163  
158 164 //for (String message : corpoEmail) {
159   - msg.setText(corpoEmail); //setContent(message, "text/html; charset=utf-8" + "\n");
160   - //}
  165 + msg.setContent(corpoEmail, "text/html; charset=utf-8");
  166 +
  167 + //}
161 168  
162 169  
163 170 } catch (Exception e) {
... ...
src/br/com/util/DateUtil.java
... ... @@ -17,5 +17,26 @@ public class DateUtil {
17 17 Date dataFormatada = dateFormat.parse(data);
18 18 return dataFormatada;
19 19 }
  20 +
  21 + public static String dataHoraFormatadaDiaMesAno(String dataParametro) {
  22 +
  23 + Date dataParametroConvertida = new Date();
  24 +
  25 + SimpleDateFormat dataFormat = new SimpleDateFormat("yyyy-MM-dd");
  26 + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
  27 + String dataFormatadaCorreta = null;
  28 +
  29 + try {
  30 + dataParametroConvertida = dataFormat.parse(dataParametro);
  31 + dataFormatadaCorreta = sdf.format(dataParametroConvertida);
  32 + } catch (ParseException e) {
  33 + e.printStackTrace();
  34 + }
  35 +
  36 +
  37 + return dataFormatadaCorreta;
  38 + }
  39 +
  40 +
20 41  
21 42 }
... ...