Olá desenvolvedores, neste tutorial criaremos uma classe ObjetoEnviaEmail para que sendo necessário possamos reutilizá-la em outros projetos. Assim, moveremos todo o código da classe AppTest escrito até aqui para dentro da classe que iremos criar.

Antes porém, precisamos estruturar o nosso projeto. Assim, dentro do package src/main/java crie o pacote “enviando.email”.Selecione o pacote criado , clique com o botão direito do mouse >> New >> Class. Dê para esta classe o nome de ObjetoEnviaEmail.

Dessa forma mova primeiramente as variáveis userName e senha para a classe que a acabamos de criar. Crie agora o método enviarEmail(). Lembre-se de lançar uma exceção para cima. A assinatura da classe ficará como mostra a imagem abaixo.

Mova para dentro do novo método todo o conteúdo do método testeEmail() da classe AppTest, exceto a Thread.sleep(5000), que é utilizada exclusivamente para fins de teste.

Para o correto funcionamento será necessário fazer alguns imports, utilize CTRL + SHIFT + O para fazê-lo de forma automática.

IMPLEMENTANDO AJUSTES

Já implementamos e fizemos o teste e sabemos que o código implementado funciona corretamente. Mas para que esta seja de fato uma classe que possa ser reutilizada em outros projetos alguns ajustes serão necessários.

O primeiro ajuste são os parâmetros essenciais para que o envio de e-mail funcione. No teste informamos manualmente e de forma direta os e-mails dos destinatários. Mas precisamos que estes e-mails sejam recebidos por uma variável, sendo então esta variável a responsável por passar os dados por parâmetro.

Desse modo, inicializaremos uma String vazia que irá receber os e-mails do destinatário. Criaremos também uma String para o remetente do e-mail, o assunto e a mensagem do corpo do e-mail. O objetivo é deixar o código o mais genérico possível.

private String listaDestinatarios = “”;
private String nomeRemetente = "";
private String assuntoEmail = "";
private String textoEmail = "";

Assim iremos substituir os e-mails informados manualmente pela String listaDestinatarios. Do mesmo modo procederemos onde inserimos o nome do remetente, o assunto e a mensagem, deixando assim o código mais genérico e adequado.

Address[] toUser = InternetAddress.parse(listaDestinatarios);
message.setFrom(new InternetAddress(UserName, nomeRemetente));
message.setSubject(asssuntoEmail);
message.setText(textoEmail);

IMPLEMENTANDO O CONSTRUTOR

A melhor forma de recebermos todos estes dados é por meio de um construtor que receberá por parâmetro a lista de destinatários, o remetente, o assunto e a mensagem do corpo de e-mail.

No escopo do método referenciaremos o objeto que estiver sendo executado por meio do operador this. Em outras palavras o operador this é utilizado para acessar o objeto corrente.

Voltamos agora a classe AppTest para instanciar o objeto ObjetoEnviaEmail, passando todas as informações como parâmetro. Após a instância do objeto utilize o CTRL + SHIFT + O para efetuar os imports necessários.

EM POUCAS PALAVRAS

Agora temos uma classe genérica para envio de e-mail que poderá ser utilizada em outros projetos. Com a implementação da classe criamos um objeto e atribuímos a ele a responsabilidade de receber os dados para o envio de e-mail.