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
;
}
}