Witma,
chcę wysłać emaila z załączonym plikiem ale pojawia się taki błąd:
javax.mail.MessagingException: IOException while sending message;
nested exception is:
javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_1_614270454.1445676863826"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1167)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at com.gmail.xxx.kl.EmailManager.sendFile(EmailManager.java:135)
at com.gmail.xxx.kl.EmailManager$3.run(EmailManager.java:213)
at java.lang.Thread.run(Unknown Source)
Caused by: javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed;
boundary="----=_Part_1_614270454.1445676863826"
at javax.activation.ObjectDataContentHandler.writeTo(Unknown Source)
at javax.activation.DataHandler.writeTo(Unknown Source)
at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1485)
at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1773)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1119)
... 5 more
Oto kod:
final String username = "**raft.pl";
final String PATH_FILE = "C:\test.txt";
final String password = "XXX";
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "false");
props.put("mail.smtp.host", "mail***craft.pl");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
String msgBody;
if(name == null)
msgBody = "NoName";
else msgBody = "XXX";
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress("***aft.pl", "kl - sender"));
msg.addRecipient(Message.RecipientType.TO,
new InternetAddress("&&&l.com", "&&&"));
msg.setSubject("Pliki z emailem");
MimeBodyPart attachFilePart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(PATH_FILE);
attachFilePart.setDataHandler(new DataHandler(fds));
attachFilePart.setFileName(fds.getName());
Multipart mp = new MimeMultipart();
mp.addBodyPart(attachFilePart);
msg.setContent(mp);
Transport.send(msg);
} catch (AddressException e) {
// ...
e.printStackTrace();
} catch (MessagingException e) {
// ...
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
Ktoś wie jak to naprawić? Używam JavaMail