Email com anexo xls na memória

0 respostas
J
Pessoal é o seguinte, há pouco tempo eu estou usando uma classe para enviar emails com anexos, um deles é pdf e o outro é xls(era pegado direto do disco ); porém agora tento passar ele da memória e no fim o anexo xls fica corrompido. Segue meus códigos:
public class MailAnexo {  
    public void enviarEmail(byte[] bytesOrcamento, byte[] bytesPlanilha, String para) throws Exception {  
    	
    	
        String de = "*****@gmail.com";  
        String assunto = "Email de Orcamento";  
        para = "*****@hotmail.com";
        String texto = "Segue em anexo o orcamento e a planilha em excel.";  
        try {  
        	Properties props = System.getProperties();
        	 props.put("mail.smtp.host", "smtp.gmail.com");
        	 props.put("mail.smtp.starttls.enable", "true");
        	 
        	 props.put("mail.smtp.host", "smtp.gmail.com");
 	        props.put("mail.smtp.port", "465");
 	        props.put("mail.smtp.user", "*****@gmail.com");
 	 
 	        props.put("mail.smtp.auth", "true");
 	        props.put("mail.smtp.debug", "true");
 	 
 	        props.put("mail.smtp.socketFactory.port", "465");
 	        props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
 	        props.put("mail.smtp.socketFactory.fallback", "false");

            Session sessao = Session.getInstance(props,null);  
            MimeMessage m = new MimeMessage(sessao);  
             
            m.setFrom(new InternetAddress(de));  
            Address[] to = new InternetAddress[] {new InternetAddress(para)};  
            m.setRecipients(Message.RecipientType.TO, to);  
            m.setSubject(assunto);  
            m.setSentDate(new java.util.Date());  
            m.setText(texto);  
  
            Multipart corpo = new MimeMultipart();  
            InternetHeaders headers = new InternetHeaders();  
            headers.addHeader("Content-Type", "application/pdf");  
            
            MimeBodyPart partPhoto = new MimeBodyPart();  
            partPhoto.setDataHandler(new DataHandler(new ByteArrayDataSource(bytesOrcamento, "application/pdf")));  
            partPhoto.setFileName("Orcamento.pdf");  
            
            
            
            MimeBodyPart partPhoto2 = new MimeBodyPart();  
            partPhoto2.setDataHandler(new DataHandler(new ByteArrayDataSource(bytesOrcamento, "application/vnd.ms-excel")));  
            partPhoto2.setFileName("Planilha_Autorizacao.xls"); 
  
            corpo.addBodyPart(partPhoto); 
            corpo.addBodyPart(partPhoto2);
            m.setContent(corpo);  
            Transport transport = sessao.getTransport("smtp");
            transport.connect(de, "*******");
            transport.sendMessage(m, m.getAllRecipients());
            transport.close(); 
        } catch (Exception ex) {  
            throw new Exception(ex.getMessage());  
        }  
    }  
}
e esse é a parte onde é chamado, lembrando que o "wb" é do tipo HSSFWorkbook da POI e tá funcionando perfeitamente:
...
MailAnexo email = new MailAnexo();
	try {
		email.enviarEmail(conteudoRelatorio,wb.getBytes(), orcamento.getRazaoSocial().getEmail());
	} catch (Exception e) {
		e.printStackTrace();
	}
...

alguem sabe o motivo do xls estar vindo corrompido?

Criado 7 de outubro de 2011
Respostas 0
Participantes 1