From: eunever32 on 18 Jun 2010 06:47 On Jun 13, 5:20 pm, Martin Gregorie <mar...(a)address-in-sig.invalid> wrote: > On Sun, 13 Jun 2010 05:31:25 -0700, euneve...(a)yahoo.co.uk wrote: > > On Jun 11, 7:22 pm, Martin Gregorie <mar...(a)address-in-sig.invalid> > > wrote: > >> On Fri, 11 Jun 2010 06:53:14 -0700, euneve...(a)yahoo.co.uk wrote: > >> >> > (4) should become: > >> >> > - create a ByteArrayInputStream from the decrypted byte > >> >> > array - pass that to a MimeMessage constructor. > > >> >> > At this point you can use the standard MimeMessage and > >> >> > MultiPart methods to parse the message and extract its > >> >> > content. > > >> Sorry for all the repeats - the NNTP server I use threw a wobbly this > >> morning and I hadn't realised it was accepting the post *and then* > >> locking up until just now. > > >> >> Thanks Martin but maybe you can help me: > > >> >> As I said I'm new to this Javamail api and am looking for a succinct > >> >> way to obtain the attachment > > >> >> I can do > > >> >> MimeMessage msg = new MimeMessage(session, new > >> >> FileInputStream("file.txt")); > > >> >> The resulting msg has three headers which looks right > > >> >> But when I do > >> >> if (msg.getContent() instanceof Multipart) { > >> >> saveAttachment > > >> >> } > > >> True enough: MimeMessage.getContent() can return a lot of things > >> including InputStreams - thats why it returns an Object! > > >> Did you do what I suggested and download both the JavaMail Design > >> Specification and the API Documentation? If not, go get them now and > >> read them. The first example in Design Specification Appendix B shows > >> exactly how to parse a multipart MIME message. > > >> The Appendix B examples are all available as downloadable source code, > >> so you can run them and/or swipe useful code from them. > > >> -- > >> martin@ | Martin Gregorie > >> gregorie. | Essex, UK > >> org |- Hide quoted text - > > >> - Show quoted text - > > > Martin > > > Thanks for your suggestion and I have obtained the Javamail Design > > document you describe. > > It is very good and I now know about Message, Part, MimePart, > > MimeMultipart, MimeMessage and I can see there is an example of how to > > read attachments. > > I am not at my desk right now so I can't verify it however I am > > concerned that if I do the following: > > > Object content = decryptContent(message, key, publicKey); And then I try > > > if (content instanceof MimePart) { > > ... > > } > > if (content instanceof MimeMultiPart) { > > ... > > } > > if (content instanceof InputStream) { > > ... > > } > > > And if my code finds itself in "InputStream" then I am back to square > > one (?) > > And how then do I obtain the attachment which I clearly have > > That depends what you want to do with it - you can read the InputStream > into an array, write it to a file,.... whatever your application requires.. > You should, of course, be looking at the Part's headers to see what > you've got (and hence how you need to handle it) begoe doing anything > with the content. And don't forget that a MIME message is a recursive > structure. It may simply have a String as its root node (it its a simple > plain text message), but OTOH it might contain a MIME message which > contains one or more MIME messages as their attachments, which in turn..... > > -- > martin@ | Martin Gregorie > gregorie. | Essex, UK > org |- Hide quoted text - > > - Show quoted text - For anyone else who encounters this problem... I want to let you know .. the problem was due to using an old version of Javamail When I upgraded to Javamail 1.4.3 it worked.
First
|
Prev
|
Pages: 1 2 3 4 Prev: Java VM 1.6.0 Sorting Collections Next: Best way to halt Java process? |