Commit 2764761edc73ea2db57c1e03290cb10c63b2318a
1 parent
592200e2
Exists in
master
Correção da formatação de envio de email.
Showing
3 changed files
with
130 additions
and
125 deletions
Show diff stats
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 | } | ... | ... |