Dies ist nur die erste Schuss, ohne zu versuchen, Ihren Code zu debuggen, aber man könnte versuchen original Oracle suggestion zu folgen:
private boolean textIsHtml = false;
/**
* Return the primary text content of the message.
*/
private String getText(Part p) throws
MessagingException, IOException {
if (p.isMimeType("text/*")) {
String s = (String)p.getContent();
textIsHtml = p.isMimeType("text/html");
return s;
}
if (p.isMimeType("multipart/alternative")) {
// prefer html text over plain text
Multipart mp = (Multipart)p.getContent();
String text = null;
for (int i = 0; i < mp.getCount(); i++) {
Part bp = mp.getBodyPart(i);
if (bp.isMimeType("text/plain")) {
if (text == null)
text = getText(bp);
continue;
} else if (bp.isMimeType("text/html")) {
String s = getText(bp);
if (s != null)
return s;
} else {
return getText(bp);
}
}
return text;
} else if (p.isMimeType("multipart/*")) {
Multipart mp = (Multipart)p.getContent();
for (int i = 0; i < mp.getCount(); i++) {
String s = getText(mp.getBodyPart(i));
if (s != null)
return s;
}
}
return null;
}
Ich denke, es ist Problem, das Sie von ihm und Multipart-Inhalt zu erhalten versuchen. Der obige Code funktionieren nur, wenn:
Sie können die getText Methode mit einem Message-Objekt aufrufen (das ist ein Part).
Fügen Sie Ihren Code hinzu, der ohne Anhang funktioniert, und wenn Sie Protokolle in Fall mit Anhang haben, fügen Sie es auch hinzu. – Hrabosch
Hier gehts http://pastebin.com/vtKcas0K –
Ok, und das Problem ist teilweise von der Linie 76., ist das nicht? Hast du versucht es zu debuggen? Weißt du, was dort passiert? Ich würde es versuchen, aber diese Informationen sollten von Ihnen in Ihrer Frage zur Verfügung gestellt werden;) Ich werde versuchen, es zu debuggen, wenn ich mehr Freizeit haben werde. – Hrabosch