envio dados de um relatório por email.

Java

16/03/2017

Bom dia, queria ver se você pode me ajudar por favor. Eu tenho um projeto, onde envio dados de um relatorio por email. Consigo enviar os campos e formá-los como html, só que envio também dados de uma outra também, então criei um array. Os dados são enviados normal, tipo, dados referentes ao relatorio 9 por exemplo, o problema que não consigo formatar. Esses dados são seriais, ou chaves, mas eles ficam todos em uma linha e também com um sinal de = que não sei da onde vem. O meu código está abaixo e como é mostrado no email.

package br.com.genesisws.mail;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.MimeMessage;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

import br.com.genesisws.domain.Relatorio;
import br.com.genesisws.domain.Serial;

@Component
public class Mailer {

private static Logger logger = LoggerFactory.getLogger(Mailer.class);

@Autowired
private JavaMailSender mailSender;

@Async
public Relatorio enviar(Relatorio relatorio) {

try {

MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

Map<Object, String> relatorios = new HashMap<>();
for (Serial item : relatorio.getSeriais()) {
String serial = item.getSerialCodificado();
relatorios.put(serial,"serial");
System.out.println(serial);

}


helper.setFrom("remetente@hotmail.com");
helper.setTo("destinario@gmail.com");
helper.setSubject("Relatório nº " + relatorio.getCodigo() + " enviado!");
helper.setText("<h3>" + "Nome da Unidade: " + relatorio.getNomeUnidade() + "
</br>" +
"Nome do Curso: " + relatorio.getNomeCurso() + "
</br>" +
"Seriais: " +"
" + relatorios + "</br>" + "</h3>", true);

mailSender.send(mimeMessage);
} catch (MessagingException e) {
logger.error("Erro enviando e-mail", e);
}
return relatorio;
}
}



o corpo do email fica assim:

Nome da Unidade: Belo Horizonte - Barreiro
Nome do Curso: Internet 9
Seriais:
{288209.010200.070014.336503.422066=serial, 139870.703070.387616.820090.770109=serial, 470703.070392.412620.090770.104330=serial}

Essa dúvida foi gerada a partir de um comentário no artigo Enviando email com JavaMail utilizando Gmail
Fernando Cordeiro

Fernando Cordeiro

Curtidas 0
POSTAR