MailEnable을 사용하여 POP3 메일 서버를 설정했습니다. Mozilla Thunderbird를 사용하여이 서버를 통해 전자 메일을 보내고받을 수 있지만 JavaMail API를 통해 다중 컨텐츠 (이 경우 HTML 컨텐츠가있는 메일)를 읽을 때 이상한 문제가 발생합니다. 입력 스트림에서 반환 된 데이터는 항상 마침표가있는 두 개의 CR/LF입니다.JavaMail을 통해 POP3 메시지를 읽는 것은 콘텐츠가 아닌 마침표 만 반환합니다.
이for (Message m : messages) {
if (m.isMimeType("multipart/*")) {
System.out.println("Process multipart/* Nachricht");
Multipart mp = (Multipart) m.getContent();
Part part = mp.getBodyPart(0);
System.out.println(part.getContent());
}
}
하나의 여러 부분이있다, 그래서 내가 직접 첫 번째 요소에 액세스 : 다음은 내 메시지 처리 코드의 관련 부분이다. 또한 중첩 된 부분은 Multipart에 없습니다. 어떤 문제가 발생했는지 알지 못해 일주일 동안 미칠 지경입니다. 누군가이 문제에 대해 저를 도울 수 있다면 매우 행복 할 것입니다.
감사합니다, fredddmadison 대신에 나는 또한이
mp.writeTo(System.out); // Use the optimized write.
System.out.flush(); // Flush the outputstream.
을 시도하는 제안이
Part part = mp.getBodyPart(0); // What if there's more parts? Or empty parts?
System.out.println(part.getContent()); // No check for empty String?
의
[getCount()] (http://docs.oracle.com/javaee/6/api/javax/mail/Multipart.html#getCount%28%29)를 확인 했습니까? –
예, getCount()는 1을 반환합니다. –