EMail, Attachments auslesen von einer Email

Moin allerseits,

ich möchte gerne aus einer Message von java mail mir
a) Den Content, also Text / HTML speichern
b) Alle Attachments

Folgenden Code habe, es fehlt aber noch das Auslesen und speichern der Attachments

Java:
public static EmailMessageUtilClass getTextFromMessage(Message message) throws MessagingException, IOException {

        if (message == null)
            return null;

        EmailMessageUtilClass email = new EmailMessageUtilClass();

        String result = "";

        if (message.isMimeType("text/plain")) {
            result = message.getContent().toString();
            email.setPlainText(result);
        } else if (message.isMimeType("multipart/*")) {
            MimeMultipart mimeMultipart = (MimeMultipart) message.getContent();
            email = getTextFromMimeMultipart(mimeMultipart, email);
        }
        return email;
    }

    public static EmailMessageUtilClass getTextFromMimeMultipart(MimeMultipart mimeMultipart,
            EmailMessageUtilClass email) throws MessagingException, IOException {

        if (mimeMultipart == null)
            return null;

        String result = "";
        int count = mimeMultipart.getCount();
        for (int i = 0; i < count; i++) {
            BodyPart bodyPart = mimeMultipart.getBodyPart(i);

            // Text
            if (bodyPart.isMimeType("text/plain")) {
                result = result + "\n" + bodyPart.getContent();
                if (email.getPlainText() == null)
                    email.setPlainText(result);

                email.setHtmlText(result);
                // break; // without break same text appears twice in my tests
            }

            // HTML
            else if (bodyPart.isMimeType("text/html")) {
                String html = (String) bodyPart.getContent();
//                result = result + "\n" + org.jsoup.Jsoup.parse(html).text();
                result = html;

                if (email.getPlainText() == null)
                    email.setPlainText(result);

                email.setHtmlText(result);
            }

            // Attachment
            else if (bodyPart.getContent() instanceof MimeMultipart) {
                result = result + getTextFromMimeMultipart((MimeMultipart) bodyPart.getContent(), email);

                if (email.getPlainText() == null)
                    email.setPlainText(result);

                email.setHtmlText(result);

                // Hier müssten die Attachments gespeichert werden?
            }
        }
        return email;
    }
Speichern will ich das ganze am Besten als InputStream in meiner EmailMessageUtilClass - Klasse.
Also sowas wie:
List<InputStream> files

Wie müsste der Code ergänzt werden?

Kann hier jemand helfen?
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben