教 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 问题?

在 javax.mail.MimeMessage 中设置发件人名称?

为啥 javax.mail 端口从 2525 更改为 25

javax mail发邮件