我正在使用javamail,通过Jodd Mail加载来自IMAP收件箱的电子邮件。该应用程序部署在glassfish中,并且在Windows中使用Oracle Java 7运行时没有问题。使用图像附件加载电子邮件问题
使用Oracle Java 7在CentOS 64位计算机上运行glassfish时,存在问题。当加载的图像附件则抛出异常:
java.lang.IllegalArgumentException: failed to parse:
at java.awt.datatransfer.DataFlavor.<init>(DataFlavor.java:368)
at javax.activation.ActivationDataFlavor.<init>(ActivationDataFlavor.java:81)
at com.sun.xml.internal.ws.encoding.ImageDataContentHandler.<init>(ImageDataContentHandler.java:57)
at sun.reflect.GeneratedConstructorAccessor3931.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at java.lang.Class.newInstance(Class.java:379)
at javax.activation.MailcapCommandMap.getDataContentHandler(MailcapCommandMap.java:588)
at javax.activation.MailcapCommandMap.createDataContentHandler(MailcapCommandMap.java:542)
at javax.activation.CommandMap.createDataContentHandler(CommandMap.java:221)
at javax.activation.DataHandler.getDataContentHandler(DataHandler.java:614)
at javax.activation.DataHandler.getContent(DataHandler.java:542)
at javax.mail.internet.MimeBodyPart.getContent(MimeBodyPart.java:657)
at jodd.mail.ReceivedEmail.processPart(ReceivedEmail.java:89)
at jodd.mail.ReceivedEmail.processPart(ReceivedEmail.java:124)
at jodd.mail.ReceivedEmail.parseMessage(ReceivedEmail.java:82)
该附件具有以下标题:
Content-Type: image/png;
name="image1.png"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="image1.png"
我试图与Oracle的Java 7和它运行在32位Linux机器相同的代码段跑没有问题。
这是javamail/java激活中的错误吗?
内容处置:附件; filename =“image/png” 这是正确的吗? – fukanchik 2015-03-02 16:30:08
@fukanchik它不是。我已更正标题 – 2015-03-02 16:58:45
@FilipeGomes获取图像文件名后,如何在邮件正文中查看它?我想在邮件正文 – 2015-09-22 11:16:06