2017-01-23 5 views
0

Ich erhalte eine zusätzliche Datei vom Typ File beim Herunterladen von Anhängen. Ich verwende MimeBodyPart.saveFile() hier ist mein Download Befestigung CodeJavamail Eine zusätzliche Datei herunterladen Beim Herunterladen von Anhängen

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

hier msgToDownload ist eine Klasse, die Message msg als Parameter mit einigen anderen Parametern übernehmen. Und getAttachmentList() ist eine Liste des Typs Mimebodypart definiert als List<MimeBodyPart>
Dies ist, wie ich Anhänge bin das Hinzufügen der E-Mail zur 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){ 
    } 

Extra-Datei enthält Attribute von Textteil. Inhalt der Zusatzdatei

-001a114fd0aa0b377d0546bb84a0 Inhaltstyp: text/plain; charset = UTF-8 finden Sie die Anhänge ... --001a114fd0aa0b377d0546bb84a0 Content-Type: text/html; charset = UTF-8 bitte die Anhänge finden ... --001a114fd0aa0b377d0546bb84a0--

Antwort

0

Zunächst sollten Sie über die isMimeType Methode lernen.

Das Problem ist höchstwahrscheinlich, dass Sie nicht multipart/alternative Nachrichten behandeln. Siehe sample code in the JavaMail FAQ.

+0

Beim Herunterladen von Dateianhängen lädt mein Programm jetzt auch eine Datei herunter, die alle Informationen wie "Inhaltstyp" und Textnachricht in dieser Datei enthält. Aber ich möchte nicht, dass es diese Info herunterlädt. –

+0

Auch wenn eine Nachricht keine Anlage hat, laden Sie eine mit Textattributen herunter. –

+0

Und in dem obigen Code glaube ich 'messageType.contains (" multipart ")' bedeutet alle Arten von multipart entweder 'multipart/alternative' oder andere Arten von multipart. Ist das nicht wahr? –

Verwandte Themen