Prova questo codice:

codice:
     public void send(String filename){
      Properties props=new Properties();
      props.put("mail.smtp.host",serverSMTP);

      Session session = Session.getDefaultInstance(props, null);
      try	{
        Message msg=new MimeMessage(session);
        msg.setFrom(new InternetAddress(emailFrom));
        InternetAddress[] address = {new InternetAddress(emailTo)};
        msg.setRecipients(Message.RecipientType.TO, address);
        msg.setSubject(subject);


        Transport transport=session.getTransport(address[0]);
        transport.connect();
        //crea la prima parte
        MimeBodyPart mbp1 = new MimeBodyPart();
        mbp1.setText(body);

        // create the second message part
        MimeBodyPart mbp2 = new MimeBodyPart();

        // attach the file to the message
        FileDataSource fds = new FileDataSource(filename);
        mbp2.setDataHandler(new DataHandler(fds));
        mbp2.setFileName(fds.getName());

        // create the Multipart and its parts to it
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(mbp1);
        mp.addBodyPart(mbp2);
        // add the Multipart to the message

        msg.setContent(mp);
        transport.sendMessage(msg,address);

        }catch (Exception ex)	{ System.out.println("errore "  +ex.getMessage());}

}