2017-01-13 1 views
0

줄 바꿈으로 javax.mail.Message의 내용을 읽어야합니다. 나는이 알고리즘을 사용하는 순간 stackoverflow에서 찾았지만 내용을 읽은 후에는 내용에 새로운 줄이 없어서 문자열을 읽을 때 Scanner.nextLine()은 한 줄만 읽습니다.줄 바꿈으로 전자 메일 내용 읽기

private String getTextFromMimeMultipart(
     MimeMultipart mimeMultipart) throws Exception{ 
    String result = ""; 
    int count = mimeMultipart.getCount(); 
    for (int i = 0; i < count; i++) { 
     BodyPart bodyPart = mimeMultipart.getBodyPart(i); 
     if (bodyPart.isMimeType("text/plain")) { 
      result = result + "\n" + bodyPart.getContent(); 
     } else if (bodyPart.isMimeType("text/html")) { 
      String html = (String) bodyPart.getContent(); 
      result = result + "\n" + org.jsoup.Jsoup.parse(html).text(); 
     } else if (bodyPart.getContent() instanceof MimeMultipart){ 
      result = result + getTextFromMimeMultipart((MimeMultipart)bodyPart.getContent()); 
     } 
    } 
    return result; 
} 
+0

읽고있는 내용으로는 무엇을하고 있는지 명확하지 않습니다. Windows를 사용하는 경우 \ r \ n 대신 \ n을 사용하는 것이 가능합니다. 그러나 그것은 단지 추측입니다. 질문을 다시 말하고 더 많은 정보를 제공하십시오. – Tobias

+0

그래, 내 문제가 해결되었습니다. Jsoup.parse()가 모든 새로운 줄을 제거하기 때문에 String에는 새로운 줄이 없습니다. 이것은 해결책입니다'String html = (String) bodyPart.getContent(); 문자열 parsedHtml = Jsoup.parse (html.replaceAll ("(? i) * *", "br2n")). result = result + result.setProperty ("line.separator") + parsedHtml.replaceAll ("br2n", System.getProperty ("line.separator")); ' –

+0

이 질문을 다른 사용자가 비슷한 문제를 검색하는 데 도움이 자신의 질문에 대한 답변으로 추가하십시오. – Tobias

답변

1

좋아, 문제를 해결했습니다. Jsoup.parse()가 모든 새로운 줄을 제거하기 때문에 String에는 새로운 줄이 없습니다. 해결책은 다음과 같습니다.

String html = (String) bodyPart.getContent(); 
String parsedHtml = Jsoup.parse(html.replaceAll("(?i)<br[^>]*>","br2n")).text(); 
result = result + System.getProperty("line.separator") + parsedHtml.replaceAll("br2n", System.getProperty("line.separator"));