教javax.mail,javax.activation识别web应用程序中邮件附件的mime类型

教javax.mail,javax.activation识别web应用程序中邮件附件的mime类型,java,email,glassfish,mime,web-applications,Java,Email,Glassfish,Mime,Web Applications,我从运行在glassfish服务器上的web应用程序发送邮件,使用java邮件API非常容易 我现在开始将文件(主要是pdf和odt)附加到邮件中,它可以工作到,但是附件的mime类型没有正确设置(应用程序/八位字节流)。 我试图用以下内容附加该文件: MimeBodyPart mimeBodyPart = new MimeBodyPart(); mimeBodyPart.attachFile(file); 以及: 但结果是一样的。 从中,我得到了将mime.types文件放在应用程序的MET

我从运行在glassfish服务器上的web应用程序发送邮件,使用java邮件API非常容易

我现在开始将文件(主要是pdf和odt)附加到邮件中,它可以工作到,但是附件的mime类型没有正确设置(应用程序/八位字节流)。 我试图用以下内容附加该文件:

MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.attachFile(file);
以及:

但结果是一样的。 从中,我得到了将mime.types文件放在应用程序的META-INF文件夹中的提示,但这似乎对我不起作用。我在战争的META-INF和应用程序的ear中尝试了id

启用javax.activation的调试可以提供以下功能:

信息:MimetypesFileTypeMap:加载到主目录

信息:MimetypesFileTypeMap:load SYS

信息:MimetypesFileTypeMap:load JAR

信息:MimetypesFileTypeMap:!任意加载

信息:MimetypesFileTypeMap:未加载mime类型文件:/META-INF/mime.types

信息:MimetypesFileTypeMap:load DEF

我必须将mime.types文件放在哪里,或者如何将mime类型添加到我的web应用程序中

谢谢
Raffael

您的应用程序必须能够从类路径加载“/META-INF/mime.types”作为资源。尝试将其包含在/WEB-INF/lib中的jar文件中,或将其放置在/WEB-INF/classes/META-INF/mime.types中。

我将其放置在/WEB-INF/classes/META-INF/中。工作得很好。非常感谢
messageBodyPart = new MimeBodyPart();
FileDataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file.getName());