Aprenderemos neste tutorial a implementar o envio de uma lista de e-mail. Já sabemos como criar uma aplicação de envio de e-mail utilizando o iText, bem como já sabemos como customizar um e-mail inserindo elementos HTML. Aprendemos a simular um arquivo de PDF, nós o criamos, escrevemos nele, anexamos ao e-mail e o enviamos.
Para fechar está série de tutoriais sobre envio de e-mail, iremos neste tutorial aprender como enviar uma lista de arquivos em PDF anexada. Como podemos em um mesmo e-mail enviar, vários PDF’s. Utilizando um provedor de e-mail esta tarefa pode ser executada quase que de forma automática. Mas como é o processo de implementação de tal funcionalidade? É o que iremos descobrir.
Na classe ObjetoEnviaEmail, já temos um método simulador de arquivos em PDF, desse modo no método enviarEmailAnexo(), antes da parte dois que trata do anexo, instancie uma lista do tipo FIleInputStream.
List<FileInputStream> arquivos = new ArrayList<FIleInputStream>();
O próximo passo é a partir do objeto instanciado arquivos, adicionar o simuladorDePDF, processo que poderá ser repetido algumas vezes.
Se estamos trabalhando com uma lista significa que precisamos percorre-la, então, logicamente implementaremos um laço de repetição.
for(FileInputStream fileInputStream : arquivos){ }
Assim sendo, a criação da instância do objeto multipart, bem como o corpoEmail adicionado com o BodyPart deverão ser movidos para antes do laço for. Também antes do for inicialize um contador. O incremento deste contador estará concatenado com o nome do arquivo gerando uma distinção entre eles.
Int index = 0;
Desse mesmo modo todo o código abaixo que antecede o conteúdo do arquivo sendo “setado”, serão movidos para dentro do for.
Porém agora, o simuladorPDF não é mais argumento do setDataHandler, mas sim o PDF que está na lista.
EM POUCAS PALVRAS
Chegando ao fim do módulo que trata do envio de e-mail, você está capacitado a implementar ou adaptar esta aplicação em seus projetos. Claro, desde que tenha entendido todo o processo e praticado.
Cada um dos arquivos anexados nesta implementação poderiam ser arquivos diferentes, como um certificado, nota fiscal, documento de texto, ou mesmo uma imagem. Agora é com você, eu fico por aqui e nos vemos no próximo módulo.