2010-12-28 9 views
0

Ich schreibe einen Pop3-Client mit JavaMail, um E-Mails abzurufen. Aber, ich konnte den Körper der text/plain codierten Mail-Nachrichten nicht abrufen.JavaMail - konnte Textkörper/einfache Nachricht nicht erhalten

Der mail.getContent() ruft den Text der Nachricht nicht ab. Aber mail.writeTo (System.out) druckt die vollständigen Mail-Daten einschließlich der Umschlaginformationen.

Gibt es eine Möglichkeit, nur den Text der E-Mail-Nachricht abzurufen?

Danke!

Update: Von der Debug-Watch kann ich sehen, dass mail.getContent() nur "\ r \ n" zurückgibt.

Lösung: Scheint wie das Problem ist mit E-Mails direkt von Telnet-Sitzung gesendet. Der Nachrichtentext wird für E-Mails abgerufen, die von einem SMTP-Client-Programm gesendet werden.

Antwort

0

JavaMail erwartet eine leere Zeile (CRLF CRLF), um den Headerblock zu beenden. Wenn Sie die Nachricht über Telnet eingeben, senden Sie Ihre Systemneuleitung (die wahrscheinlich nur LF ist) am Ende jeder Zeile, die Sie eingeben. Also meine Vermutung ist, dass JavaMail das Header/Body-Trennzeichen, das es erwartet, nicht sieht, und es nur Ihre "body" Zeilen am Ende des Headerblocks als fehlerhaft formatierte Header anheften.

Verwandte Themen