javamail/ email mit anhang auslesen

HateSociety

Grünschnabel
Hallo zusammen ich arbeite gerade an einem Projekt, bei dem ich unter anderem versuche Email's im eml Format einzulesen und anschließend in eine pgsql-datenbank speicher.
Die Email's liegen auf dem PC und werden über einen JFileChooser ausgewählt.

Das ganze funktioniert soweit auch ganz gut und so wie ich mir das vorstelle, aber
wenn die Email einen Anhang hat, dann wir der Content (also der inhalt der Email) nicht mehr ausgelesen.
anstelle des Inhaltes steht dann nur noch : javax.mail.internet.MimeMultipart@186c730
(die Zahlen/Buchstabenkombination hinter dem '@' variiert)

hier noch der betreffende code:


Java:
public void display(File emlFile) throws Exception{
        
        Properties props = System.getProperties();
        props.put("mail.host", "smtp.dummydomain.com");
        props.put("mail.transport.protocol", "smtp");

        Session mailSession = Session.getDefaultInstance(props, null);
        InputStream inputStream = new FileInputStream(emlFile);
        MimeMessage message = new MimeMessage(mailSession, inputStream);
        
        String xx = message.getFrom()[0].toString().replaceAll("[<|>]", " ");
        String[] tt = xx.split(" ");
        
        for(int i=0;i<tt.length;i++){
            if(tt[i].contains("@")){
                from = tt[i];

            System.out.println("From : " + from);
            }
        }
     
        setBetreff(message.getSubject());
        setAbs(from);
        setInhalt(message.getContent()); 

        System.out.println("Betreff : " + getBetreff());
        System.out.println("Absender : " + getAbs());
        System.out.println("--------------");
        System.out.println("Inhalt : " + getInhalt());
    }

ich hoffe, dass mir jemand helfen kann oder zumindest sagen kann, wo mein Fehler liegt

Mit freundlichen Grüßen
Ralf
 
Zuletzt bearbeitet:
so funktioniert jetzt endlich :)

hier noch der code, falls jemand anderes das selbe problem mal haben sollte

Java:
public void display(File emlFile) throws Exception{
        
        Properties props = System.getProperties();
        Session mailSession = Session.getDefaultInstance(props, null);
        InputStream inputStream = new FileInputStream(emlFile);   
        MimeMessage message = new MimeMessage(mailSession, inputStream);
        
        try {
            //Get the header information
            String from2 = ((InternetAddress) message.getFrom()[0]).getPersonal();
            if (from2 == null) {
                from2 = ((InternetAddress) message.getFrom()[0]).getAddress();
            }
            System.out.println("FROM2: " + from2);
            String subject = message.getSubject();
            System.out.println("SUBJECT: " + subject);
            
            String xx = message.getFrom()[0].toString().replaceAll("[<|>]", " ");
            String[] tt = xx.split(" ");

            for(int i=0;i<tt.length;i++){
                if(tt[i].contains("@")){
                    from = tt[i];

                System.out.println("From : " + from);
                }
            }
            
            // -- Get the message part (i.e. the message itself) --
            Part messagePart = message;
            Object content = messagePart.getContent();
            // -- or its first body part if it is a multipart message --
            if (content instanceof Multipart) {
                messagePart = ((Multipart) content).getBodyPart(0);
                System.out.println("[ Multipart Message ]");
            }
            // -- Get the content type --
            String contentType = messagePart.getContentType();
            // -- If the content is plain text, we can print it --
            System.out.println("CONTENT:" + contentType);

            if (contentType.startsWith("text/plain") || contentType.startsWith("text/html")) {
                InputStream is = messagePart.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is));
                String thisLine;
                meld= "\n-------------------------------------------------------";
                while (( thisLine= reader.readLine()) != null) {
//                    System.out.println("thisLine: "+thisLine);
                    meld =  meld +"\n"+ thisLine;
                }
             }
            System.out.println("-----------------------------");
          
            setAbs(from);
            setBetreff(message.getSubject());
            setInhalt(meld);
            System.out.println("Meld: "+meld);
        } catch (Exception ex) {
            ex.printStackTrace();
        }        
    }
 
Zurück