1. Visão geral
O propósito desta página é exemplificar a codificação de um robô simples para envio de e-mails. Para tal utilizaremos a biblioteca WFMail, que é disponibilizada pelo time de Produto e Tecnologia e importada por meio da dependência robot-parent. Para uma compreensão mais abrangente sobre a estrutura de um projeto de robôs, é recomendada a leitura prévia da página Estrutura básica de um robô.
2. WFMail
Declararemos um objeto do tipo WFMail para realizar o envio de e-mails. Este objeto é proveniente da biblioteca WFMail, importada anteriormente através da dependência robot-parent.
private static final WFMail WFMAIL = new WFMail();O objeto WFMail possui um método chamado enviaEmailMessage que faz o envio, e requer um objeto do tipo EmailMessage como parâmetro.
3. EmailMessage
O EmailMessage também faz parte da biblioteca WFMail, então agora precisamos apenas importá-lo em nossa classe.
O construtor do EmailMessage espera alguns parâmetros que definem o envio de e-mail, como assunto (subject), mensagem (message), remetente (from), destinatário (to) e um indicador booleano para determinar se a mensagem será enviada no formato HTML.
Para este exemplo, utilizaremos esses parâmetros de forma estática, declarando-os no início da classe.
private static final String SUBJECT = "Demonstração - Envio de e-mail";
private static final String MESSAGE = "Esta é uma demonstração de envio de e-mail para o projeto Radar.";
private static final String FROM = "vinicius.henrique@lecom.com.br";
private static final String TO = "vinicius.henrique@lecom.com.br";
private static final boolean IS_EMAIL_HTML = true;Em seguida, instanciaremos no método execute um novo objeto do tipo EmailMessage, passando as variáveis criadas como parâmetros.
EmailMessage emailMessage = new EmailMessage(SUBJECT, MESSAGE, FROM, TO, IS_EMAIL_HTML);4. Envio do e-mail
Por fim, chamaremos o método enviaEmailMessage do objeto WFMail, passando nosso objeto EmailMessage como parâmetro.
WFMAIL.enviaEmailMessage(emailMessage);A chamada do método enviaEmailMessage pode gerar uma exceção do tipo EmailMessageException em caso de falha no envio. Capturaremos essa exceção e a registraremos como log de erro.
try {
EmailMessage emailMessage = new EmailMessage(SUBJECT, MESSAGE, FROM, TO, IS_EMAIL_HTML);
WFMAIL.enviaEmailMessage(emailMessage);
} catch (EmailMessageException e) {
LOGGER.error("Erro ao enviar o e-mail", e);
}5. Conclusão
Demonstramos de forma simples como criar um robô para envio de e-mails, utilizando uma biblioteca disponibilizada pelo nosso time de Produto e Tecnologia. Embora seja um exemplo básico, essa base possibilita entender o funcionamento da nossa biblioteca de envio de e-mails, permitindo sua implementação em diversas customizações.
O código completo deste exemplo está disponível em http://git.lecom.com.br/vinicius.henrique/RadarRoboEnviaEmail.