Bonjour,
Connaissez vous la procedure pour recuperer des pieces jointes avec le package Javamail ???
Bonjour,
Connaissez vous la procedure pour recuperer des pieces jointes avec le package Javamail ???
Voici un lien présentant un code Java permettant de récupérer des e-mails avec pièce(s) jointe(s) via le protocole POP3 grâce à JavaMail :Envoyé par mrfirefunk
http://www.jscape.com/articles/retri...sing_java.html.
Le probleme c'est que pour utiliser ce code et en exploiter pleinement les fonctionnalités il faut acheter leur package.
Ya pas un moyen gratuits de faire cela ??
Désolé, j'avais pas vu que c'était payant.Envoyé par mrfirefunk
Sinon, j'ai aussi trouvé ça : http://forum.java.sun.com/thread.jsp...318242&start=0.
Merci beaucoup pour ce coup de pouce.
J'ai encore un petit souci.
Ce morceau de code fait appel a une classe Base64 qui fait partit du package payant jscape. Cependant j'ai reussi a trouver une version gratuite de la classe Base64.
Mon probleme est lorsque j'utilise cette classe lors de l'execution j'ai l'erreur suivante :Voici mon code source :Bad Base64 input character at 6: 44(decimal)
Je met en piece jointe le package Base64.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 // Permet de recuperer les pieces jointes public void getObjectToMessage(int indice, String dossier) { try { // on recupere les messages dans un tableau Message message[] = myFolder.getMessages(); ArrayList al = new ArrayList(); Multipart mp = null; File tempFile = null; FileOutputStream fos = null; String fileName = null; byte[] decrypt = null; if (!new File (dossier).exists()) { System.out.println("Directory Does Not Exist: "+ dossier); } else System.out.println("Directory Does Exist: "+ dossier); mp = (MimeMultipart) message[indice].getContent(); for (int j = 0, m = mp.getCount(); j < m; j++) { System.out.println("on est rentré dans la boucle des pieces jointes"); Part part = mp.getBodyPart(j); fileName = part.getFileName(); if (fileName == null) { fileName = ""; fileName = "temp" + j; } tempFile = new File(dossier + fileName); fos = new FileOutputStream(tempFile); part.removeHeader("Content-Type"); part.removeHeader("Content-Transfer-Encoding"); part.removeHeader("Content-Disposition"); decrypt = Base64.decode(((String)part.getContent())); fos.write(decrypt); fos.close(); al.add(dossier + fileName); } } catch(java.lang.Throwable msg) {} }
Milles mercis
Je me demande si le problème ne vient pas de l'instruction ci-dessous :
Celle-ci te retourne-t'elle bien le contenu de la pièce jointe encodé en base 64 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part part.getContent()
Autant pour moi !!!!
Il s'avère que le code que j'utilise fonctionne trés bien. Mon fichier en pièce jointe était tout simplement corrompu.
Mon probleme est résolu, merci beaucoup
Merci infiniment enfin j arrive a télécharger les pièces jointes
Quand j'essaie d'exécuter la portion du code suivante j'ai cet erreur:
Quelqu'un peut m'aider ?Bad Base64 input character at 5: 46(decimal)
Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 if (BodyPart.ATTACHMENT.equalsIgnoreCase(disposition)) { File tempFile = null; FileOutputStream fos = null; byte[] decrypt = null; String folderr = "C:\\Users\\ADIL\\Desktop\\Att\\"; tempFile = new File(folderr + b.getFileName()); System.out.println(tempFile); fos = new FileOutputStream(tempFile); b.removeHeader("Content-Type"); b.removeHeader("Content-Transfer-Encoding"); b.removeHeader("Content-Disposition"); decrypt = Base64.decode(b.getContent().toString()); System.out.println(decrypt); fos.write(decrypt); fos.close(); }
Ben, apparemment ton code suppose que b est un attachement encodé en base64, et il se trouve que b est un attachement qui n'est pas encodé en base64.
Il faudrait vérifier si le header "Content-Transfer-Encoding" indique bien "base64", avant d'essayer de décoder en base64.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager