ich meine Bewerbung vor kurzem aus dem Spiel migriert 2.3 2.5 nach dieser Anleitung spielen https://www.playframework.com/documentation/2.5.x/Migration25 und ich Play-Mailer aktualisieren, nach dem, was hier angegeben https://github.com/playframework/play-mailerkönnen nicht mit Play Asynchron-E-Mails senden 2.5
Jetzt ist mein App nicht mehr kann E-Mails senden. Ich habe ein Injector Constructor für Mailer Beispiel Injizieren
@Inject public SmtpConnector(MailerClient mailer)
{
this.mailerClient = mailer;
MailcapCommandMap mc = (MailcapCommandMap) MailcapCommandMap.getDefaultCommandMap();
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("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822");
CommandMap.setDefaultCommandMap(mc);
}
ich die E-Mail senden Methode in einem Asynchron-Aufgabe auszuführen:
CompletableFuture.runAsync(() -> mailerClient.send(email)).exceptionally(exc -> {exc.printStackTrace(); return null;});
Aber ich halte einen Fehler über den Mangel an suport über MIME-Typ immer mehrt:
... java.util.concurrent.CompletableFuture $ AsyncRun.run (CompletableFuture.java:1626) ... 5 weitere verursacht durch: javax.mail.MessagingException: IOException während m Senden Essage; verschachtelte Ausnahme ist: javax.activation.UnsupportedDataTypeException: kein Objekt DCH für MIME-Typ multipart/alternative; boundary = "---- = _ Part_0_1284684208.1469102367572" bei com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:1177) bei javax.mail.Transport.send0 (Transport.java:195) bei javax.mail .Transport.send (Transport.java:124) bei org.apache.commons.mail.Email.sendMimeMessage (Email.java:1411) ... 14 mehr verursacht von: javax.activation.UnsupportedDataTypeException: kein Objekt DCH für MIME-Typ mehrteilig/alternativ; boundary = "---- = _ Part_0_1284684208.1469102367572" bei javax.activation.ObjectDataContentHandler.writeTo (DataHandler.java:896) bei javax.activation.DataHandler.writeTo (DataHandler.java:317) bei javax.mail.internet.MimeBodyPart .writeTo (MimeBodyPart.java:1485) unter javax.mail.internet.MimeMessage.writeTo (MimeMessage.java:1773) unter com.sun.mail.smtp.SMTPTransport.sendMessage (SMTPTransport.java:1121) ... 17 mehr
Aber:
Wie Sie oben sehen können, habe ich sie in den Injector Konstruktor
Ich habe nichts in der IDE/ClassPath geändert (nur die sbt/Paketversionen in build.sbt)
Ich habe alles versucht, was hier vorgeschlagen wurde javax.activation.UnsupportedDataTypeException: no object DCH for MIME type multipart/mixed; boundary, aber ohne Ergebnisse. Der aktuelle Thread-Kontext-Ansatz führt mich zu einer Sicherheitsausnahme
Gibt es einen Workaround? Gibt es eine (andere) Möglichkeit, Emails mit einer Java API mit Play Framework 2.5 zu versenden?
UPDATE 1:
Nach jmehrens Vorschlag, ich aktiviert, um die Debug-Flag, das ist, was ich habe:
kann nicht geladen werden DCH com.sun.mail.handlers.multipart_mixed; Ausnahme: java.lang.ClassNotFoundException: com/sun/mail/Handler/multipart_mixed
Und nach diesem GitHub.com/playframework/Play-Mailer/Themen/104 das Problem, indem sie nicht den Aufruf der Methode aus dem Kontext des Play-Controller
UPDATE 2 ausgelöst scheint: Klasse Ausgang von Anfang an: Hier haben Sie die -verbose finden bis Ausnahme: s000.tinyupload.com/?file_id=50323853839855936002
UPDATE 3:
Hier haben Sie den Klassenlader von getClass finden() abgeladen, wie jmehrens vorgeschlagen: s000.tinyupload.com/? file_id = 51200633758480523188
Ist es möglich, die Systemeigenschaft 'javax.activation.debug = true' fügen Sie die Ausgabe auf die Frage zu setzen? Sie sollten auch versuchen, den Classloader-Baum für 'javax.mail.Session',' javax.activation.DataHandler', den aktuellen Kontext-Classloader und den Classloader von 'mailerClient' zu drucken. – jmehrens
Sieht aus wie ein Problem mit dem Layout des aufrufenden Classloaders. Konnten Sie den Classloader-Baum drucken? [Hier sind einige Codezeilen 210-215 und Zeilen 268-276] (https://java.net/projects/javamail/sources/mercurial/content/logging/src/main/java/MailHandlerDemo.java?rev=838) – jmehrens