# JavaMail-API - Message-Objekt lesen



## henning-malaysia (6. Juni 2005)

Hallo miteinander, 

ich habe die JavaMail API benutzt, um ein kleines Programm zu schreiben, welches sich meine POP3-Messages abholt. Das funktioniert auch soweit so gut, das Resultat ist, dass ich sämtliche Messages in einem javax.mail.Message[]-Array habe. 

Nur möchte ich jetzt die Sachen ausgeben, testweise mal einfach in einer Schleife auf Konsole:


```
for(int i = 0; ......){
System.out.println(nachricht[i].getFrom() +  nachricht[i].getSubject() + nachricht[i].getContent());
}
```

Allerdings erscheint einzig das Subject im Klartext, der Absender und er Inhalt haben offenbar keine vernünftige toString()-Methode, da kommt nur Sauerkraut raus a lá 

```
[Ljavax.mail.internet.InternetAddress;@d1c778
```

Weiß jemand, wie ich aus dem getContent() den Inhalt der Message als Klartext bekommen kann?

Besten Dank!

henning-malaysia


----------



## henning-malaysia (8. Juni 2005)

Hmmmm, kennt sich da niemand aus


----------



## torsch2711 (8. Juni 2005)

Hi,

   da das ganze auch MIME codiert ist, wirst du mit getContent keinen plaintext rausbekommen.

   Hier ist ein bsp. wie du POP3 Nachrichten auslesen kannst:

http://www.javaworld.com/javaworld/jw-10-2001/jw-1026-javamail-p2.html

   Ich denke das hilft dir weiter.
   Ist auch sonst ein nettes tutorial 

  Und für eilige, hier die relevante stelle:

    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 (contentType.startsWith("text/plain")
         || contentType.startsWith("text/html"))
        {
          InputStream is = messagePart.getInputStream();

          BufferedReader reader
           =new BufferedReader(new InputStreamReader(is));
          String thisLine=reader.readLine();

          while (thisLine!=null)
          {
            System.out.println(thisLine);
            thisLine=reader.readLine();
          }
        }

 EDIT: Upsi, die hälfte vergessen 

   Gruss,

   Torsten.


----------



## henning-malaysia (17. Juni 2005)

Ausgezeichnet, genau dieses....

Danke!


----------

