IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

envoyer un email avec pièce jointe (javamail)


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut envoyer un email avec pièce jointe (javamail)
    Bonjour,

    je veux envoyer un email avec une pièce jointe.
    tuto:http://www.codejava.net/java-ee/jsp/...t-and-javamail

    Mais j'ai des erreur au niveau de upload file ....
    1)localement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    saveFile: C:\Program Files\Apache Software Foundation\Apache Tomcat 8.0.15\bin\letter-wordpress-arabic-writing-report-n3.pdf
    java.io.FileNotFoundException: letter-wordpress-arabic-writing-report-n3.pdf (Accès refusé)
    2)Dans le cas d’hébergement,comment je peux faire ?!

    merci de me guider

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,


    Tu tentes d'écrire ton fichier dans le dossier des applications, pour lequel il faut des droits particuliers (le dossier des programmes n'est pas vraiment fait pour y stocker des fichiers temporaires). C'est probablement parce que tu n'indiques aucun dossier pour ton fichier, donc son chemin absolu est déterminé par rapport au dossier d'exécution. Choisis-toi un dossier temporaire pour stocker tes fichiers, qui soit en dehors des dossiers protégés. Par exemple, tu peux


    • lire la propriété System.getProperty("java.io.tmpdir") pour obtenir un chemin standard de dossier temporaire ;
    • utiliser Files.createTempDirectory(...) pour créer un dossier temporaire
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    J'ai utilisé cette méthode pour upload file
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
    private List<File> saveUploadedFiles(HttpServletRequest request)
                throws IllegalStateException, IOException, ServletException {
     
            // configures upload settings
            DiskFileItemFactory factory = new DiskFileItemFactory();
            factory.setSizeThreshold(THRESHOLD_SIZE);
            factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
     
            ServletFileUpload upload = new ServletFileUpload(factory);
            upload.setFileSizeMax(MAX_FILE_SIZE);
            upload.setSizeMax(MAX_REQUEST_SIZE);
     
            // constructs the directory path to store upload file
            String uploadPath = getServletContext().getRealPath("")
                + File.separator + UPLOAD_DIRECTORY;
            // creates the directory if it does not exist
            File uploadDir = new File(uploadPath);
            if (!uploadDir.exists()) {
                uploadDir.mkdir();
            }
     
            List<File> listFiles = new ArrayList<File>();
            byte[] buffer = new byte[4096];
            int bytesRead = -1;
            Collection<Part> multiparts = request.getParts();
     
            if (multiparts.size() > 0) {
                for (Part part : request.getParts()) {
                    // creates a file to be saved
                    String fileName = extractFileName(part);
                    if (fileName == null || fileName.equals("")) {
                        // not attachment part, continue
                        continue;
                    }
     
                    //File saveFile = new File(fileName);
                    //System.out.println("saveFile: " + saveFile.getAbsolutePath());
                    String filePath = uploadPath + File.separator + fileName;
                    System.out.println("saveFile2: " + filePath);
                    File storeFile = new File(filePath);
     
     
     
     
     
                    FileOutputStream outputStream = new FileOutputStream(storeFile);
     
                    // saves uploaded file
                    InputStream inputStream = part.getInputStream();
                    while ((bytesRead = inputStream.read(buffer)) != -1) {
                        outputStream.write(buffer, 0, bytesRead);
                    }
                    outputStream.close();
                    inputStream.close();
     
                    listFiles.add(storeFile);
                }
            }
            return listFiles;
        }
    Mais j’arrive à envoyer le document à partir de le dossier temporaire mais pas comme un lien à télécharger au réception.


    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
     
    Transport transport = session.getTransport("smtp");
            transport.connect(host, from, pass);
     
          // creates message part
            MimeBodyPart messageBodyPart = new MimeBodyPart();
     
            messageBodyPart.setContent(msg, "text/html; charset=utf-8");
     
            // creates multi-part
            Multipart multipart = new MimeMultipart();
            multipart.addBodyPart(messageBodyPart);
     
            // adds attachments
            if (attachedFiles != null && attachedFiles.size() > 0) {
                for (File aFile : attachedFiles) {
                    MimeBodyPart attachPart = new MimeBodyPart();
     
                    try {
                        System.out.println("sendingg");
                        attachPart.attachFile(aFile);
                    } catch (IOException ex) {
                        ex.printStackTrace();
                    }
     
                    multipart.addBodyPart(attachPart);
                }
            }
     
            // sets the multi-part as e-mail's content
            message.setContent(multipart);
     
     
            //message.saveChanges();
            Transport.send(message);
            transport.close();
     
             System.out.println("Sent message successfully....");

  4. #4
    Membre du Club
    Inscrit en
    Avril 2009
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 126
    Points : 46
    Points
    46
    Par défaut
    Ce code permet d'envoyer le document à jointe comme un lien à télécharger au réception
    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
     
     // adds attachments
            if (attachedFiles != null && attachedFiles.size() > 0) {
                for (File aFile : attachedFiles) {
                    MimeBodyPart attachPart = new MimeBodyPart();
     
     
     
     
                        System.out.println("sendingg");
                        DataSource source = new FileDataSource(aFile);
                        attachPart.setDataHandler(new DataHandler(source));
                        attachPart.setHeader("Content-ID","file");
                        System.out.println("ici: "+aFile.getName());
                        //String strPath = aFile.substring(aFile.lastIndexOf("\\")+1, aFile.length());
                        attachPart.setFileName(aFile.getName());
     
     
     
                    multipart.addBodyPart(attachPart);
                }
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer email avec pièce jointe
    Par hous2m dans le forum Android
    Réponses: 0
    Dernier message: 20/05/2015, 16h12
  2. Envoyer automatiquement un email avec pièce jointe
    Par Bigasse dans le forum VBScript
    Réponses: 7
    Dernier message: 25/06/2014, 13h59
  3. Envoyer un email avec pièce jointe
    Par LaSirenne dans le forum Développement Web en Java
    Réponses: 7
    Dernier message: 01/11/2010, 20h58
  4. Envoyer un mail avec pièce jointe (javascript)
    Par Dorra_26 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 21/07/2006, 08h31
  5. [C++/MFC]Envoyer un mail avec Pièce jointe
    Par cjacquel dans le forum MFC
    Réponses: 4
    Dernier message: 12/06/2006, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo