Subversion Repositories Integrator Subversion

Rev

Blame | Last modification | View Log | Download | RSS feed

package br.edu.cesmac.sic.core.domain.util;

import java.io.IOException;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

import br.edu.cesmac.core.exception.NegocioException;
import br.edu.cesmac.core.util.VerificadorUtil;

public class EmailUtil {
       
        private static final String MENSAGEM_TEXTO_SOBRE_MUDANCAS_SITUACAO_INSCRICAO_SISTEMA_INICIACAO_CIENTIFICA = "Houve atualização da situação da inscrição do projeto de pesquisa submetido. Para mais detalhes acesse o Sistema de Iniciação Científica.";
        private static final String ASSUNTO_EMAIL_SISTEMA_INICIACAO_CIENTIFICA = "SISTEMA DE INICIAÇÃO CIENTÍFICA";
        private static final String NOME_PROPRIEDADE_EMAIL_EMAILORIGEM = "email.emailorigem";
        private static final String NOME_PROPRIEDADE_EMAIL_SENHA = "email.senha";
        private static final String NOME_PROPRIEDADE_EMAIL_USUARIO = "email.usuario";
        private static final String NOME_PROPRIEDADE_EMAIL_PORTA = "email.porta";
        private static final String NOME_PROPRIEDADE_EMAIL_HOSTNAME = "email.hostname";
        private static final String NOME_ARQUIVO_EMAIL_PROPERTY = "/email.properties";
        private static final String NOME_ARQUIVO_PADRAO_EMAIL = "/mensagemPadrao.html";

       
        public static void enviarEmailComInformacoesSobreInscricao(String emailDestino, String observacao) {
                try {
                        HtmlEmail email = criarEmailHtmlIhAdicionarPropriedadePadrao();
                       
                        email.addTo(emailDestino);
                        email.setSubject(ASSUNTO_EMAIL_SISTEMA_INICIACAO_CIENTIFICA);
//                      String textoHtml = gerarHtmlMensagemDoEmail(usuario, senha);
//                      email.setHtmlMsg(textoHtml.toString());
//                      email.setHtmlMsg(observacao);
                        StringBuilder texto = new StringBuilder(MENSAGEM_TEXTO_SOBRE_MUDANCAS_SITUACAO_INSCRICAO_SISTEMA_INICIACAO_CIENTIFICA);
                        if (VerificadorUtil.naoEstaNuloOuVazio(observacao)) {
                                texto.append("\n\nOBSERVAÇÕES:\n");
                                texto.append(observacao);
                        }
                        email.setTextMsg(texto.toString());
                        email.send();
               
                } catch (EmailException | IOException e) {
                        throw new NegocioException("Erro ao enviar email: "+ e.getMessage());
                }
        }
       
        public static void enviarEmailComInformacoesSobreInscricao(String emailDestino, String mensagemPrincipal, String observacao) {
                try {
                        HtmlEmail email = criarEmailHtmlIhAdicionarPropriedadePadrao();
                       
                        email.addTo(emailDestino);
                        email.setSubject(ASSUNTO_EMAIL_SISTEMA_INICIACAO_CIENTIFICA);
                        StringBuilder texto = new StringBuilder(mensagemPrincipal);
                        if (VerificadorUtil.naoEstaNuloOuVazio(observacao)) {
                                texto.append("\n\nOBSERVAÇÕES:\n");
                                texto.append(observacao);
                        }
                        email.setTextMsg(texto.toString());
                        email.send();
               
                } catch (EmailException | IOException e) {
                        throw new NegocioException("Erro ao enviar email: "+ e.getMessage());
                }
        }
       
        public static void enviarEmailParaContatoProjetoPesquisa(String emailDestino, String tituloProjetoPesquisa, String conteudo) {
                try {
                        HtmlEmail email = criarEmailHtmlIhAdicionarPropriedadePadrao();
                       
                        email.addTo(emailDestino);
                        email.setSubject(ASSUNTO_EMAIL_SISTEMA_INICIACAO_CIENTIFICA + " : " + tituloProjetoPesquisa);
//                      email.setHtmlMsg(conteudo);
                        email.setTextMsg(conteudo);
                        email.send();
               
                } catch (EmailException | IOException e) {
                        throw new NegocioException("Erro ao enviar email: "+ e.getMessage());
                }
        }
       
        /*
        private static String gerarHtmlMensagemDoEmail(String usuario, String senha) {
                AbrirArquivo abrirArquivo = new AbrirArquivo();
                return abrirArquivo.retornarConteudoDoArquivo(NOME_ARQUIVO_PADRAO_EMAIL);
        }
        */

       
        private static HtmlEmail criarEmailHtmlIhAdicionarPropriedadePadrao() throws IOException, EmailException {
                PropertiesUtil propertiesUtil = new PropertiesUtil(NOME_ARQUIVO_EMAIL_PROPERTY);
               
                String hostname = propertiesUtil.retornarPropriedadeDoArquivo(NOME_PROPRIEDADE_EMAIL_HOSTNAME);
                String porta = propertiesUtil.retornarPropriedadeDoArquivo(NOME_PROPRIEDADE_EMAIL_PORTA);
                String usuarioEmail =propertiesUtil.retornarPropriedadeDoArquivo( NOME_PROPRIEDADE_EMAIL_USUARIO);
                String senha = propertiesUtil.retornarPropriedadeDoArquivo( NOME_PROPRIEDADE_EMAIL_SENHA);
                String emailOrigem = propertiesUtil.retornarPropriedadeDoArquivo(NOME_PROPRIEDADE_EMAIL_EMAILORIGEM);
                       
                HtmlEmail email = new HtmlEmail();
                email.setHostName(hostname);
                email.setSmtpPort(new Integer(porta));
                email.setAuthentication(usuarioEmail, senha);
                email.setSSLOnConnect(true);
                email.setFrom(emailOrigem);
                return email;
        }

}