Salve!
to com o seguinte stack:
Erro: Envio Mensagem
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_0_12014584.1307542667803"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1141)
at porto.SendMail.sendMailAnexo(SendMail.java:209)
at porto.Segura.main(Segura.java:39)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_0_12014584.1307542667803"
at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:877)
at javax.activation.DataHandler.writeTo(DataHandler.java:302)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1476)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1772)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1099)
… 2 more
no código:
public void sendMailAnexo(String from, String to, String subject, String message, String caminho) {
try{
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp"); //define protocolo de envio como SMTP
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.host", mailSMTPServer); //server SMTP do GMAIL
props.put("mail.smtp.auth", "true"); //ativa autenticacao
props.put("mail.smtp.user", from); //usuario ou seja, a conta que esta enviando o email (tem que ser do GMAIL)
props.put("mail.debug", "true");
props.put("mail.smtp.port", mailSMTPServerPort); //porta
props.put("mail.smtp.socketFactory.port", mailSMTPServerPort); //mesma porta para o socket
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
//Cria um autenticador que sera usado a seguir
SimpleAuth auth = null;
auth = new SimpleAuth ("usuario","senha");
//Session - objeto que ira realizar a conex�o com o servidor
/*Como h� necessidade de autentica��o � criada uma autenticacao que
* � responsavel por solicitar e retornar o usu�rio e senha para
* autentica��o */
Session session = Session.getDefaultInstance(props, auth);
session.setDebug(false); //Habilita o LOG das a��es executadas durante o envio do email
//Objeto que cont�m a mensagem
Message msg = new MimeMessage(session);
MimeBodyPart messageBodyPart = new MimeBodyPart();
MimeBodyPart messageBodyPart1 = new MimeBodyPart();
messageBodyPart1.setText("");
messageBodyPart1.setText(message);
DataSource source = new FileDataSource(caminho);
DataHandler DH = new DataHandler(source);
messageBodyPart.setDataHandler(DH);
messageBodyPart.setFileName(caminho);
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
multipart.addBodyPart(messageBodyPart1);
try {
//Setando o destinat�rio
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//Setando a origem do email
msg.setFrom(new InternetAddress(from));
//Setando o assunto
msg.setSubject(subject);
//Setando o conte�do/corpo do email
//msg.setContent(message,"text/plain");
msg.setContent(multipart, "text/plain");
}
catch (Exception e) {
System.out.println(">> Erro: Completar Mensagem");
e.printStackTrace();
}
//Objeto encarregado de enviar os dados para o email
Transport tr;
try {
tr = session.getTransport("smtp"); //define smtp para transporte
/*
* 1 - define o servidor smtp
* 2 - seu nome de usuario do gmail
* 3 - sua senha do gmail
*/
tr.connect(mailSMTPServer, "user", "senha");
msg.saveChanges(); // don't forget this
//envio da mensagem
tr.sendMessage(msg, msg.getAllRecipients());
tr.close();
}
catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(">> Erro: Envio Mensagem");
e.printStackTrace();
}
}
catch(Exception e){
e.printStackTrace();
}
}
}
No windows funciona, no linux da o erro de cima…
pesquisei, mas nao consegui achar solução… aparentemente é algum bug na biblioteca, q os caras corrigem na mao… o q fazer?