I am trying to send an email with attachments and found the java mail api to be irritatingly insufficient.
There are only two implementations of javax.activation.DataHandler
which mandates me to create a local file to send an attachment. May be I have to write my own implementation of DataHandler but I dont want to do that at this point.
thanks in advance !
Addy
EDIT : I meant javax.activation.DataSource
not javax.activation.DataHandler
Spring provides a
partial wrapper around the JavaMail API, making it a bit easier to swallow.For example, the
MimeMessageHelper
class allows you to add attachments using various interfaces, including from a generalInputStream
source.The underlying mechanics of JavaMail are very comprehensive and robust, it's just the API that's rubbish. This addresses that concern, to a large degree.
Writing a custom DataSource is pretty easy (I tossed one together for one of our apps a year ago, and it took less than an hour). If that's the only issue you are having with JavaMail, I suggest that you give it a try.
That said, I agree that JavaMail is definitely overly complex for the most common use cases.
Have you tried apache commons for this task?
It has MultiPartEmail which has several overloaded
attach
methods.