2012-06-11 7 views
0

개별 메시지를 내 디스크에 .eml 파일로 저장했습니다. 디스크와 메모리에서 읽을 시간이되면 전자 메일의 본문 (텍스트)을 복구하는 데 문제가 있습니다. 다음 코드는이 .eml 파일.eml을 JavaMail MIME 형식으로 읽기

를 읽는입니다
String filePath = "filepath\\msg0.eml"; 
InputStream is = new FileInputStream(filePath); 
MimeMessage mime = new MimeMessage(null, is); 

여기에 흥미로운 일이 - 나는 제목에서 누가, 이메일에 대한 여러 가지 인쇄 할 수 있습니다, 그것은받은 시간, 참조, 숨은 참조, 등. 나는 단지 이메일 내용을 얻을 수 없다. 내가 본문을보아야하는 곳 대신 메모리 주소가 있습니다 (아래)

content type: multipart/alternative; boundary="00032555717a714a1504a378be8e" 

어떤 도움이 필요합니까? 나는 캐스트처럼 단순한 것을 잊어 버렸습니까? MimeMessage 형식 외에도 Multipart 및 Message의 내용을 인쇄 해 보았습니다. 귀하의 의견을 보내 주셔서 감사합니다.

+0

http://www.faqs.org/rfcs/rfc822.htm 및 http://en.wikipedia.org/wiki/MIME –

답변

0

JavaMail과 함께 제공되는 msgshow.java 데모 프로그램을 사용하여 파일에 메시지를 표시하십시오. -m 옵션을 사용하십시오. 예상 한 내용이 표시되지 않으면 파일 형식이 잘못되어 메시지를 파일에 저장하는 프로그램을 파일에서 찾아야합니다.

여전히 문제가있는 경우 문제를 파악하는 데 도움이되는 세부 정보가 필요합니다.

+0

답장을 보내 주셔서 감사합니다. msgshow 데모를 수정 한 후 약간의 효과가있었습니다. 이제는 어떻게 작동했는지 이유를 알아 냈습니다. (이전에 아무런 문제없이 msgshow를 사용하려 했었습니다.) – Kyte

+0

작동하려면 어떻게 변경해야합니까? –

+0

msgshow의 main 메소드에서 실행하는 대신 msgshow 객체 내 개체 클래스에 MIME 개체를 캐스팅하고 dumpPart (Part p)라고 불렀는데 작동하는 것처럼 보였습니다. 이제 ArrayList 을 MimeMessage 배열로 읽는 중입니다. – Kyte