2017-01-23 1 views
0

Je reçois un fichier supplémentaire de type File en téléchargeant des pièces jointes. J'utilise ici MimeBodyPart.saveFile() est mon téléchargement du code de fixationJavamail Obtenir un fichier supplémentaire En téléchargeant des pièces jointes

for (MimeBodyPart mbp : msgToDownload.getAttachmentList()) { 
    updateProgress(msgToDownload.getAttachmentList().indexOf(mbp), 
    msgToDownload.getAttachmentList().size()); 
    mbp.saveFile(DOWNLOAD_LOCATION + mbp.getFileName()); 
} 

ici msgToDownload est une classe qui prend Message msg comme paramètre avec d'autres paramètres. Et getAttachmentList() est une liste de type MimeBodyPart défini comme List<MimeBodyPart>
Voilà comment je suis d'ajouter des pièces jointes à la liste

sb.setLength(0); 
     msgToRender.clearAttachments(); 
     Message msg = msgToRender.getMsgRef(); 
     try { 
//   String messageType = msg.getContentType(); 

      sb.append(getText(msg)); 

      if (hasAttachments(msg)) { 
       Multipart mp = (Multipart) msg.getContent(); 
       for (int i = mp.getCount() - 1; i >= 0; i--) { 
        BodyPart bp = mp.getBodyPart(i); 

        MimeBodyPart mbp = (MimeBodyPart) bp; 
        msgToRender.addAttachment(mbp); 
       } 
      } 
    }catch(Exception e){ 
    } 

fichier supplémentaire contient les attributs d'une partie de texte du courrier. Contenu du fichier supplémentaire

-001a114fd0aa0b377d0546bb84a0 Type de contenu: text/plain; charset = UTF-8 s'il vous plaît trouver les pièces jointes ... --001a114fd0aa0b377d0546bb84a0 Content-Type: text/html; charset = UTF-8 s'il vous plaît trouver les pièces jointes ... --001a114fd0aa0b377d0546bb84a0--

Répondre

0

D'abord, vous devriez en apprendre davantage sur la méthode isMimeType.

Le problème est très probablement que vous ne gérez pas les messages multipart/alternatifs. Voir le sample code in the JavaMail FAQ.

+0

en téléchargeant des pièces jointes maintenant mon programme télécharge également un fichier contenant toutes les informations comme 'content-type' et un message texte dans ce fichier. Mais je ne veux pas qu'il télécharge cette information. –

+0

Même si un message n'a pas de pièce jointe, téléchargez-en un avec les attributs de texte. –

+0

Et dans le code ci-dessus je crois 'messageType.contains (" multipart ")' signifie tout type de multipart soit 'multipart/alternative' ou un autre type de multipart. N'est-ce pas vrai? –