# javamail: anhang downloaden, anzeigen



## boelkstoff (15. September 2003)

Hallo!

Ich arbeite gerade mit JavaMail.
von Sun gibt es auch eine super Anleitung dafür aber leider nicht wie ich den Anhang einer Email mit jsp/servlet darstelle bzw. zum download anbiete



```
Message emessage[] = folder.getMessages();
Message email = emessage[0];
Multipart multipart = (Multipart)email.getContent();

        for (int i=0; i<multipart.getCount(); i++) {
          Part part = multipart.getBodyPart(i);

          String disposition = part.getDisposition();

          if ((disposition != null) && 
              ((disposition.equals(Part.ATTACHMENT) || 
               (disposition.equals(Part.INLINE))))) {
            //part.getFileName() 
           //part.getInputStream()
           //part.getContentType() 
          }
        }
```

Kann mir jemand sagen wie ich jetzt den Anhang darstelle bzw. einen link mache zum "downloaden! Leider kenne ich mich mit Stream usw. nicht aus!

Wer kann mir bitte helfen

Vielen Dank


----------



## Thomas Darimont (17. September 2003)

Servus!

 Versuchs mal so:

 Schreib doch den Anhang erstmal auf die Platte des Servers, danach kannst du darauf verlinken ...


```
throws IOException, ServletException ---
 ...
 
 if ((disposition != null) && 
               ((disposition.equals(Part.ATTACHMENT) || 
                (disposition.equals(Part.INLINE))))) {
            File f = new File("/mails/save/part.getFileName() ");
 FileOutputStream fos = new FileOutputStream(f);
InputStream is = part.getInputStream();
 
 byte[] buffer = new byte[1024];
 int bytesRead = 0;
 
 while ( (bytesRead = is.read(buffer))!= -1){
        fos.write(buffer,0,bytesRead );
 }
 
fos.close();
is.close();
 
 //... nun Links zur Datei zusammenbasteln ...
 
            //part.getContentType() 
           }
```


----------



## boelkstoff (17. September 2003)

Viele Dank,
das werd ich morgen gleich mal ausprobieren.
danke

Kennst Du eine gute Seite wo Java und Streams/reader erklärt wird?


----------



## Thomas Darimont (17. September 2003)

Servus!

http://www.galileocomputing.de/open...00.htm#RxxxJava120000256DatenstromeundDateien

Gruß Tom


----------



## Darth-Igi (17. Januar 2006)

Also dieser Teil funktioniert bei mir so nicht, und dürfte auch allgemein nicht gehen:


```
byte[] buffer = new byte[1024];
int bytesRead = 0;

while ( (bytesRead = br.read(buffer))!= -1){
       fos.write(buffer);
}
```

da der Teil "br.read(buffer)" keine Bytes lesen kann, aber "fos.write(buffer)" nur Bytes ließt.

Vielleicht hab ich auch irgendwo einen Denkfehler drin, drum bitte ich um Aufklärung.


----------



## Thomas Darimont (17. Januar 2006)

Hallo!

 schon klar das das nicht gehen kann... ;-) Macht doch nicht immer diese alten Threads auf.

 Schau mal hier:
http://www.tutorials.de/tutorials217501.html&highlight=Download

 Gruss Tom


----------

