From 3bf80d6e0f792d80586630293f550aefdd06efc8 Mon Sep 17 00:00:00 2001 From: "lucas.taia" Date: Thu, 28 Oct 2021 00:17:00 +0000 Subject: [PATCH] fixes bug#23534 dev:lucas qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@109350 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../entidad/EmpresaEmailConfig.java | 10 +++++++++ .../entidad/EmpresaEmailFlexBus.java | 11 ++++++++++ .../impl/CalculoComissaoServiceImpl.java | 11 ++++++++-- .../service/impl/ContingenciaServiceImpl.java | 5 +++++ .../ventaboletos/utilerias/SendMail.java | 21 +++++++++++++------ .../vo/comissao/EmailConfigVO.java | 9 ++++++++ 6 files changed, 59 insertions(+), 8 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailConfig.java b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailConfig.java index 2c21d4f93..abba3426c 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailConfig.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailConfig.java @@ -49,6 +49,8 @@ public class EmpresaEmailConfig implements Serializable { private Integer usuarioId; @Column(name = "INDAUTENTICACAO") private Boolean indAutenticacao; + @Column(name = "TIPOAUTORIZACAO") + private String tipoAutorizacao; public EmpresaEmailConfig() { @@ -134,6 +136,14 @@ public class EmpresaEmailConfig implements Serializable { this.indAutenticacao = indAutenticacao; } + public String getTipoAutorizacao() { + return tipoAutorizacao; + } + + public void setTipoAutorizacao(String tipoAutorizacao) { + this.tipoAutorizacao = tipoAutorizacao; + } + @Override public int hashCode() { final int prime = 31; diff --git a/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java index 450e370f8..874d6449f 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java +++ b/src/com/rjconsultores/ventaboletos/entidad/EmpresaEmailFlexBus.java @@ -71,6 +71,9 @@ public class EmpresaEmailFlexBus implements Serializable { @Column(name = "EMAILCOPIAOCULTA") private String emailCopiaOculta; + @Column(name = "TIPOAUTORIZACAO") + private String tipoAutorizacao; + public EmpresaEmailFlexBus() { } @@ -187,6 +190,14 @@ public class EmpresaEmailFlexBus implements Serializable { this.emailCopiaOculta = emailCopiaOculta; } + public String getTipoAutorizacao() { + return tipoAutorizacao; + } + + public void setTipoAutorizacao(String tipoAutorizacao) { + this.tipoAutorizacao = tipoAutorizacao; + } + @Override public int hashCode() { final int prime = 31; diff --git a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java index 0933942f2..94b9dbd11 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/CalculoComissaoServiceImpl.java @@ -56,6 +56,7 @@ import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.SendMail; +import com.rjconsultores.ventaboletos.utilerias.SendMail.AuthType; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; import com.rjconsultores.ventaboletos.vo.comissao.BoletoComissao; import com.rjconsultores.ventaboletos.vo.comissao.ComissaoDesconto; @@ -1388,6 +1389,10 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { mail.setSmtpPort(emailConfig.getSmtpPorta()); mail.setSmtpUser(emailConfig.getSmtpEmail()); mail.setAuth(emailConfig.isAutenticacao()); + + if (StringUtils.isNotEmpty(emailConfig.getTipoAutorizacao())) { + mail.setAuthType(AuthType.valueOf(emailConfig.getTipoAutorizacao())); + } String assunto = null; String texto = null; @@ -1415,8 +1420,7 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { baos.write(recibo, 0, recibo.length); - mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", new String[] {nomeArquivo}).concat(".pdf"), baos, MimeType.PDF); - + mail.addAnexo(Labels.getLabel("busquedaCalculoComissaoController.recibo.email.nomeAnexo", new String[] {nomeArquivo}).concat(".pdf"), baos, MimeType.PDF); mail.send(); return true; @@ -1440,6 +1444,9 @@ public class CalculoComissaoServiceImpl implements CalculoComissaoService { emailConfigVO.setSmtpEmail(empresaEmailConfig.getSmtpEmail()); emailConfigVO.setSmtpUser(empresaEmailConfig.getSmtpEmail()); emailConfigVO.setSmtpPorta(empresaEmailConfig.getSmtpPorta()); + if (emailConfigVO.getTipoAutorizacao() != null) { + emailConfigVO.setTipoAutorizacao(empresaEmailConfig.getTipoAutorizacao()); + } } } return emailConfigVO; diff --git a/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java index 8d0b9a3f5..3a3e9a623 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/ContingenciaServiceImpl.java @@ -9,6 +9,7 @@ import javax.mail.AuthenticationFailedException; import javax.mail.SendFailedException; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -31,6 +32,7 @@ import com.rjconsultores.ventaboletos.service.EmpresaEmailService; import com.rjconsultores.ventaboletos.utilerias.SendMail; import com.rjconsultores.ventaboletos.utilerias.StringHelper; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.utilerias.SendMail.AuthType; /** * @author vjcor @@ -167,6 +169,9 @@ public class ContingenciaServiceImpl implements ContingenciaService { EmpresaEmail empresaEmail = empresaEmailService.buscarPorEmpresa(historicoCont.getEmpresa()); EmpresaEmailConfig empresaEmailConfig = empresaEmailConfigService.buscarPorEmpresa(historicoCont.getEmpresa()); mail.setAuth(empresaEmailConfig.getIndAutenticacao()); + if (StringUtils.isNotEmpty(empresaEmailConfig.getTipoAutorizacao())) { + mail.setAuthType(AuthType.valueOf(empresaEmailConfig.getTipoAutorizacao())); + } mail.setEmailFrom(empresaEmail.getEmailDe()); mail.setSmtpHost(empresaEmailConfig.getSmtp()); mail.setSmtpPassword(empresaEmailConfig.getSenha()); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/SendMail.java b/src/com/rjconsultores/ventaboletos/utilerias/SendMail.java index dbb89303f..c205e7b54 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/SendMail.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/SendMail.java @@ -39,7 +39,7 @@ public class SendMail implements java.io.Serializable { private static final long serialVersionUID = 2067442255080001075L; - public enum AuthType {TLS,SSL} + public enum AuthType {TLS,SSL,SMTPS,NONE} private String smtpHost; private String smtpUser; @@ -126,7 +126,7 @@ public class SendMail implements java.io.Serializable { adicionarAnexos(multipart); - Transport t = session.getTransport("smtp"); + Transport t = session.getTransport(authType.equals(AuthType.SMTPS) ? "smtps" : "smtp"); if (auth) { t.connect(smtpUser, smtpPassword); } else { @@ -163,7 +163,7 @@ public class SendMail implements java.io.Serializable { adicionarAnexos(multipart); - Transport t = session.getTransport("smtp"); + Transport t = session.getTransport(authType.equals(AuthType.SMTPS) ? "smtps" : "smtp"); if (auth) { t.connect(smtpUser, smtpPassword); } else { @@ -183,7 +183,7 @@ public class SendMail implements java.io.Serializable { ((MimeMessage) message).setSubject(subject, ENCODE_UTF_8); - Transport t = session.getTransport("smtp"); + Transport t = session.getTransport(authType.equals(AuthType.SMTPS) ? "smtps" : "smtp"); if (auth) { t.connect(smtpUser, smtpPassword); } else { @@ -261,9 +261,18 @@ public class SendMail implements java.io.Serializable { if (authType.equals(AuthType.TLS)) { props.setProperty("mail.smtp.starttls.enable", "true"); props.setProperty("mail.smtp.starttls.required", "true"); - } else { + } else if (authType.equals(AuthType.SSL)) { props.put("mail.smtp.socketFactory.port", smtpPort); - props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + } else if (authType.equals(AuthType.SMTPS)) { + props.setProperty("mail.smtps.ssl.checkserveridentity", "true"); + props.setProperty("mail.smtps.quitwait", "false"); + } else if (authType.equals(AuthType.NONE)) { + props.setProperty("mail.smtp.starttls.enable", "true"); + props.setProperty("mail.smtp.starttls.required", "false"); + props.setProperty("mail.smtp.ssl.trust", "*"); + props.setProperty("mail.smtp.ssl.checkserveridentity", "false"); + props.setProperty("mail.smtp.ssl.enable", "false"); } props.setProperty("mail.smtp.auth", auth.toString()); diff --git a/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java b/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java index dc266da6d..ddb7cda41 100644 --- a/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java +++ b/src/com/rjconsultores/ventaboletos/vo/comissao/EmailConfigVO.java @@ -8,6 +8,7 @@ public class EmailConfigVO { private String smtpEmail; private String smtpUser; private boolean autenticacao; + private String tipoAutorizacao; public String getSmtp() { return smtp; @@ -57,4 +58,12 @@ public class EmailConfigVO { this.smtpUser = smtpUser; } + public String getTipoAutorizacao() { + return tipoAutorizacao; + } + + public void setTipoAutorizacao(String tipoAutorizacao) { + this.tipoAutorizacao = tipoAutorizacao; + } + }