2017-08-03 70 views
0

我想從以下java代碼讀取電子郵件正文從Outlook。如果電子郵件包含表格,我該如何正確閱讀?使用 代碼是如何通過表格Java代碼讀取電子郵件?

// Methods to get Email message content. 
    private String getTextFromMessage(Message message) throws Exception { 
    String result = ""; 
    if (message.isMimeType("text/plain")) { 
     result = message.getContent().toString(); 
    } else if (message.isMimeType("multipart/*")) { 
     MimeMultipart mimeMultipart = (MimeMultipart)message.getContent(); 
     result = getTextFromMimeMultipart(mimeMultipart); 
    } 
    result = removeHyperTextContent(result); 
    return result; 
    } 

    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(); 
     break; } 
     if (bodyPart.isMimeType("text/html")) { 
     String html = (String)bodyPart.getContent(); 
     result = result + "\n" + html; 
     } else if ((bodyPart.getContent() instanceof MimeMultipart)) { 
     result = result + getTextFromMimeMultipart((MimeMultipart)bodyPart.getContent()); 
     break; //This is added to break after recursive call, otherwise it fetches the content from next MultiPart. 
     } 
    } 
    result = removeHyperTextContent(result); 
    return result; 
    } 

1. Body of original body text 2 . Out put string I got

+0

在問題中你不清楚你要找什麼輸出。它看起來像你正在得到表的確切輸出。如果您將電子郵件作爲字符串輸出,那就好像它會得到。 – drelliot

+0

。謝謝您的回覆。我想在瀏覽器上向用戶顯示整條消息。我怎樣才能做到這一點?提前致謝.. – Harishfysx

回答

0

首先,這個JavaMail的FAQ條目將幫助您找到在一封電子郵件中main message body

在你的代碼中,你更喜歡text/html內容上的text/plain內容。表格可能無法在text/plain內容中很好地格式化,但取決於正在使用的郵件程序。文本/ html內容將包含關於表格的所有信息,但您需要解析html以便能夠使用您可以使用的表格提取表格信息。

一旦你提取它,我不清楚你想要對錶格做什麼。如果您在瀏覽器中將結果顯示爲html,則擁有原始html表格可能正是您所需要的。