Email com anexo xls na memória

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:

[code]
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());  
    }  
}  

} [/code]

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?