我正在尝试发送带有附件的电子邮件,但发现 java 邮件 API 的不足令人恼火。
只有两个实现javax.activation.DataHandler
要求我创建一个本地文件来发送附件。可能我必须编写自己的 DataHandler 实现,但此时我不想这样做。
提前致谢 !
艾迪
编辑:我的意思javax.activation.DataSource
不是javax.activation.DataHandler
我正在尝试发送带有附件的电子邮件,但发现 java 邮件 API 的不足令人恼火。
只有两个实现javax.activation.DataHandler
要求我创建一个本地文件来发送附件。可能我必须编写自己的 DataHandler 实现,但此时我不想这样做。
提前致谢 !
艾迪
编辑:我的意思javax.activation.DataSource
不是javax.activation.DataHandler
Spring 为JavaMail API 提供了一个部分包装器,使它更容易被接受。
例如,MimeMessageHelper
该类允许您使用各种接口添加附件,包括来自通用InputStream
来源的附件。
JavaMail 的底层机制非常全面和强大,只是 API 很垃圾。这在很大程度上解决了这个问题。
您是否尝试过apache commons来完成这项任务?
它有MultiPartEmail,它有几个重载的attach
方法。
编写自定义 DataSource 非常容易(一年前我为我们的一个应用程序组合了一个,只用了不到一个小时)。如果这是您在使用 JavaMail 时遇到的唯一问题,我建议您试一试。
也就是说,我同意 JavaMail 对于最常见的用例来说绝对过于复杂。