Я сталкивался с тем же, когда использовал apache camel на предохранителе jboss. Мне пришлось изменить мой pom.xml ... см. Фрагменты ниже:

ользую следующий код для отправки mail.Text сообщение работает нормально, но Mail с вложением не работает, это дает исключение. Как решить эту проблему

javax.mail.MessagingException: IOException при отправке сообщения; Вложенное исключение: javax.activation.UnsupportedDataTypeException: нет объекта DCH для типа MIME multipart / mixed; border = "---- = _ Part_0_10430987.1294298904906" на com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:676) на javax.mail.Transport.send0 (Transport.java:189) на javax.mail .Transport.send (Transport.java:118) в Gmailer.GMailSender.sendMailAttach (GMailSender.java:114) в SendMail.main (SendMail.java:22) Причина: javax.activation.UnsupportedDataTypeException: нет объекта DCH для типа MIME многочастному / смешанный; border = "---- = _ Part_0_10430987.1294298904906" в javax.activation.ObjectDataContentHandler.writeTo (неизвестный источник) в javax.activation.DataHandler.writeTo (неизвестный источник) в javax.mail.internet.MimeBodyPart.writeTo ( : 1403) на javax.mail.internet.MimeMessage.writeTo (MimeMessage.java:1745) на com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:636) ... еще 4

Почта с кодом вложения:

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

Текстовое письмо отправьте код:

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

}
}

Ответы на вопрос(8)

Ваш ответ на вопрос