# javamail/ email mit anhang auslesen



## HateSociety (11. Juli 2008)

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: 



```
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


----------



## HateSociety (15. Juli 2008)

so funktioniert jetzt endlich 

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


```
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();
        }        
    }
```


----------

