отправить письмо от java5 и java6

Я знаю, что подобные вопросы задавали много раз до этого, но я думаю, что этот вопрос несколько иной:)

Я пишу плагин Maven Report, который будет отправлять электронные письма списку пользователей. Теперь у меня есть проблема, что код, кажется, работает нормально, когда я запускаю его с java5, но не работает с java6. На самом деле плагин написан на Groovy и использует утилиты commons-email для отправки html-сообщения:

HtmlEmail email = new HtmlEmail();
email.setHostName(mailhost);
email.setSmtpPort(mailport);
email.setFrom(args.from);
email.addTo(args.receiver);
email.setSubject(args.subject);
email.setHtmlMsg(args.htmlmessage);
email.setDebug(log.isDebugEnabled());
email.send();

Проект имеет зависимости от javax.mail: mail: 1.4.1 и javax.activation: активации: 1.1.1.

Если я запускаю проект maven, используя мой новый плагин, яя получаю это исключение с java6:

javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; 
boundary="----=_Part_0_11139111.1262007863993"
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:676)
at javax.mail.Transport.send0(Transport.java:189)

С java5 не надеваюУ меня нет проблем.

Я попробовал следующие обходные пути:

Добавьте конфигурацию mailcap программно:

// add handlers for main mail MIME types
MailcapCommandMap mc = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
mc.getMimeTypes().each{ println "Original MIME-TYPE: $it" }
mc.getAllCommands ("multipart/mixed").each { println "Original COMMAND: $it" }

mc.addMailcap("text/html;; x-java-content-handler=com.sun.mail.handlers.text_html");
mc.addMailcap("text/xml;; x-java-content-handler=com.sun.mail.handlers.text_xml");
mc.addMailcap("text/plain;; x-java-content-handler=com.sun.mail.handlers.text_plain");
mc.addMailcap("multipart/*;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("multipart/mixed;; x-java-content-handler=com.sun.mail.handlers.multipart_mixed");
mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);

MailcapCommandMap mc2 = (MailcapCommandMap)CommandMap.getDefaultCommandMap();
mc2.getMimeTypes().each{ println "Replaced MIME-TYPE: $it" }
mc2.getAllCommands ("multipart/mixed").each { println "Replaced COMMAND: $it" }

Это также не работает с java6, но действительно показывает, что запрошенный mimetype не зарегистрирован в mailcap (см. Циклы с 'Println» журнал отчетов).

Original  MIME-TYPE: image/jpeg
Original  MIME-TYPE: image/gif
Original  MIME-TYPE: text/*
Replaced MIME-TYPE: message/rfc822
Replaced MIME-TYPE: multipart/*
Replaced MIME-TYPE: text/plain
Replaced MIME-TYPE: text/xml
Replaced MIME-TYPE: multipart/mixed
Replaced MIME-TYPE: text/html
Replaced MIME-TYPE: image/jpeg
Replaced MIME-TYPE: image/gif
Replaced MIME-TYPE: text/*
Replaced COMMAND: javax.activation.CommandInfo@1e5d007
Replaced COMMAND: javax.activation.CommandInfo@bc8f01

Я создал файл под названием «mailcap» и поместил его вMETA-INF» каталог плагина (см.http://java.sun.com/j2ee/1.4/docs/api/javax/activation/MailcapCommandMap.html). Но это совсем не так.

Итак, мой вопрос, есть ли у кого-нибудь представление о том, как я получаю код / конфигурацию, работающую на java5 и java6 :)

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

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