教 javax.mail、javax.activation 在 Web 应用程序中识别邮件附件的 mime 类型
Posted
技术标签:
【中文标题】教 javax.mail、javax.activation 在 Web 应用程序中识别邮件附件的 mime 类型【英文标题】:Teaching javax.mail, javax.activation to recognize mime type of mail attachment in web application 【发布时间】:2010-12-18 11:40:00 【问题描述】:我从运行在 glassfish 服务器上的 Web 应用程序发送邮件,使用 java 邮件 API 非常简单。
我现在开始将文件(主要是 pdf 和 odt)附加到邮件中,这可以正常工作,但附件的 mime 类型设置不正确(应用程序/八位字节流)。 我尝试将文件附加到:
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.attachFile(file);
和:
messageBodyPart = new MimeBodyPart();
FileDataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file.getName());
但结果相同。 从here 开始,我提示在我的应用程序的 META-INF 文件夹中放置一个 mime.types 文件,但这似乎对我不起作用。我在战争的 META-INF 和我的应用程序的耳朵里尝试了 id。
为 javax.activation 启用调试给了我这个:
信息:MimetypesFileTypeMap:加载主页
信息:MimetypesFileTypeMap:加载 SYS
信息:MimetypesFileTypeMap:加载 JAR
信息:MimetypesFileTypeMap: !anyLoaded
INFO:MimetypesFileTypeMap:未加载 mime 类型文件:/META-INF/mime.types
信息:MimetypesFileTypeMap:加载 DEF
我必须将 mime.types 文件放在哪里,或者如何将 mime 类型放入我的 Web 应用程序?
谢谢 拉斐尔
【问题讨论】:
【参考方案1】:您的应用程序必须能够从类路径加载“/META-INF/mime.types”作为资源。尝试将其包含在 /WEB-INF/lib 的 jar 文件中,或将其放在 /WEB-INF/classes/META-INF/mime.types 中。
【讨论】:
我把它放在 /WEB-INF/classes/META-INF/ 中。工作得很好。非常感谢以上是关于教 javax.mail、javax.activation 在 Web 应用程序中识别邮件附件的 mime 类型的主要内容,如果未能解决你的问题,请参考以下文章
学习笔记——mail发送javax.mail.AuthenticationFailedException: failed to connect at javax.mail.Service.connec
javax.mail.AuthenticationFailedException:连接失败,没有指定密码?
如何解决 javax.mail.AuthenticationFailedException 问题?