2017-08-03 3 views
0

J'essaye de lire le corps d'email de perspectives avec le code de Java suivant. Comment lire correctement si l'email contient une table? Code utilisé estComment lire le courrier électronique avec des tables Code 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

Il n'est pas clair dans la question quelle sortie vous recherchez. Il semble que vous obteniez la sortie exacte des tables. Si vous publiez l'email sous forme de chaîne, c'est aussi bon que ça va l'être. – drelliot

+0

.Merci pour votre réponse.Je veux montrer le message entier comme il est à l'utilisateur sur le navigateur. Comment puis je faire ça? Merci d'avance.. – Harishfysx

Répondre

0

Tout d'abord, cette FAQ JavaMail vous aidera à trouver le main message body dans un message électronique.

Dans votre code, vous préférez le texte/contenu brut sur le contenu texte/html. Les tableaux peuvent ne pas être bien formatés dans le texte/le contenu brut, mais cela dépend de l'expéditeur utilisé. Le contenu text/html aura toutes les informations sur la table, mais vous aurez besoin de quelque chose qui analyse html pour pouvoir extraire les informations de la table dans un formulaire que vous pouvez utiliser.

Ce n'est pas clair pour moi ce que vous voulez faire avec la table une fois que vous l'extrayez. Si vous affichez le résultat en tant que html dans un navigateur, avoir la table html originale peut être exactement ce dont vous avez besoin.