MessagingExceptionIOException lors de l'envoi du message en java?

J'utilise le code suivant pour envoyer du courrier.Texte d'envoi de message fonctionne bien mais le Mail avec la pièce jointe n'est pas de travail, il donne l'Exception.Comment faire pour résoudre ce

javax.mail.MessagingException: IOException lors de l'envoi du message;
nested exception est la suivante:
javax.l'activation.UnsupportedDataTypeException: pas d'objet MPC pour type MIME multipart/mixed;
boundary="----=_Part_0_10430987.1294298904906"
au com.soleil.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
au javax.mail.De Transport.send0(Transports en commun.java:189)
au javax.mail.De Transport.envoyer(de Transport.java:118)
au Gmailer.GMailSender.sendMailAttach(GMailSender.java:114)
à SendMail.principale(SendMail.java:22)
Causés par: javax.l'activation.UnsupportedDataTypeException: pas d'objet MPC pour type MIME multipart/mixed;
boundary="----=_Part_0_10430987.1294298904906"
au javax.l'activation.ObjectDataContentHandler.writeTo(Source Inconnue)
au javax.l'activation.DataHandler.writeTo(Source Inconnue)
au javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1403)
au javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1745)
au com.soleil.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:636)
... 4 plus

Mail avec pièce Jointe code :

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

Texte envoyer email code:

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) {

}
}
Trace de la pile est incomplète, veuillez donner le plein.
Double de stackoverflow.com/questions/1969667/...

OriginalL'auteur Karthick Ramu | 2011-01-06