JavaMail-API - Message-Objekt lesen

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:

Code:
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á
Code:
[Ljavax.mail.internet.InternetAddress;@d1c778

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

Besten Dank!

henning-malaysia
 
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.
 
Zuletzt bearbeitet:
Zurück