Io uso il seguente codice per inviare un messaggio mail.Text invio sta lavorando bene, ma mail con allegato non funziona dà l'Exception.How per risolvere questoMessagingExceptionIOException durante l'invio di messaggi in java?
javax.mail.MessagingException: IOException durante l'invio del messaggio; l'eccezione nidificata è: javax.activation.UnsupportedDataTypeException: nessun oggetto DCH per tipo MIME multipart/mixed; boundary = "---- = _ Part_0_10430987.1294298904906" a com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:676) a javax.mail.Transport.send0 (Transport.java:189) a javax.mail.Transport.send (Transport.java:118) a Gmailer.GMailSender.sendMailAttach (GMailSender.java:114) a SendMail.main (SendMail.java:22) causati da: javax.activation.UnsupportedDataTypeException : nessun oggetto DCH per tipo MIME multipart/mixed; boundary = "---- = _ Part_0_10430987.1294298904906" a javax.activation.ObjectDataContentHandler.writeTo (fonte sconosciuta) a javax.activation.DataHandler.writeTo (fonte sconosciuta) a javax.mail.internet.MimeBodyPart.writeTo (MimeBodyPart.java:1403) all'indirizzo javax.mail.internet.MimeMessage.writeTo (MimeMessage.java:1745) in com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:636) ... 4 più
mail con il codice allegato:
public synchronized void sendMailAttach(String subject, String body,
String sender, String recipients) {
try {
MimeMessage message = new MimeMessage(session);
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
// Create the message part
BodyPart messageBodyPart = new MimeBodyPart();
// Fill the message
messageBodyPart.setText("hi Demo");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// Part two is attachment
messageBodyPart = new MimeBodyPart();
String filename = "mail.txt";
DataSource source = new FileDataSource(filename);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(filename);
multipart.addBodyPart(messageBodyPart);
// Put parts in message
message.setContent(multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
}
catch (MessagingException e) {
System.out.println("MessagingException" + e.getMessage());
}
catch (Exception e) {
System.out.println("Mail Send Exception " + e.getMessage());
}
}
testo del codice MAIL:
public synchronized void sendMail(String subject, String body,
String sender, String recipients) throws Exception {
try {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(
body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO,
new InternetAddress(recipients));
Transport.send(message);
} catch (Exception e) {
}
}
La traccia dello stack è incompleta, si prega di fornire quella completa. – Kartoch
Duplicato di http://stackoverflow.com/questions/1969667/send-a-mail-from-java5-and-java6 – dkarp