我正在尝试发送带有附件的电子邮件,并发现java邮件api令人生气。
javax.activation.DataHandler
只有两个实现,它要求我创建一个本地文件来发送附件。可能我必须编写自己的DataHandler实现,但此时我不想这样做。
提前感谢!
阿迪
编辑:我的意思是javax.activation.DataSource
而不是javax.activation.DataHandler
答案 0 :(得分:10)
Spring提供了 partial wrapper around the JavaMail API ,让它更容易吞下。
例如,MimeMessageHelper
类允许您使用各种接口including from a general InputStream
source添加附件。
JavaMail的底层机制非常全面和强大,它只是垃圾的API。这在很大程度上解决了这个问题。
答案 1 :(得分:1)
您是否尝试apache commons执行此任务?
它有MultiPartEmail,有几个重载的attach
方法。
答案 2 :(得分:1)
编写自定义DataSource非常简单(我在一年前为我们的一个应用程序一起扔了一个,花了不到一个小时)。如果这是您使用JavaMail的唯一问题,我建议您试一试。
尽管如此,我同意JavaMail对于最常见的用例来说肯定过于复杂。