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

Développement Web en Java Discussion :

Envoyer un email avec pièce jointe


Sujet :

Développement Web en Java

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Envoyer un email avec pièce jointe
    J'ai crée une application web qui permet l'envoie d'un mail avec pièce jointe, pour ce faire, j'ai utilisé Multipart pour construire les parties du messages à envoyer dont une partie est en html et une pièce jointe(image par exemple).
    le problème c'est que lorsque je fait fait le test sur le serveur local (tomcat) depuis eclipse, tout va bien et le message est envoyé avec la pièce jointe correctement. Mais lorsque je fait le déploiement de l'application sur un serveur (apache tomcat) distant une erreur se produit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Email Parsing failed.
    The selected email cannot be parsed since the email is corrupt.
     Please ask the sender to send the email again using another program or method.
     MIME message decoding error: incomplete message body part
    j'ai constaté que c'est un problème de MIME Type,
    Comment puis je régler ce problème??

  2. #2
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    any help please?

  3. #3
    Membre actif
    Inscrit en
    Février 2008
    Messages
    457
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 457
    Points : 215
    Points
    215
    Par défaut
    Post ton code d'envoi de mails

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    voici la methode de l'envoi:
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
     
    public void sendMail(File file)
    {
    Properties props = System.getProperties();
                String from = "name@mydomain.com";
                props.put("mail.smtp.host", "myhost");
               props.put("mail.smtp.port", "25");
     
                Session session = Session.getInstance(props, null);
               try{
               MimeMessage message = new MimeMessage(session);
              message.addHeader("MIME-Version", "1.0");
             message.addHeader("Content-Transfer-Encoding", "BASE64");
           message.addHeader("Content-Type", "multipart/mixed"); 
              message.setFrom(new InternetAddress(from));
             message.setSentDate(new Date());
             String[] to =  {"xx@yahoo.fr","yy@gmail.com"};
     
     
                       InternetAddress[] toAddress = new InternetAddress[to.length];
                       for (int i = 0; i < to.length; i++)
                         toAddress[i] = new InternetAddress(to[i]);
                       message.setRecipients(Message.RecipientType.TO, toAddress);    
                       message.setSubject("send mail");
     
                       MimeMultipart multipart = new MimeMultipart();
     
                       BodyPart messageBodyPart = new MimeBodyPart();
                   messageBodyPart.setContent(bean.getBody()+"<br>","text/html");
     
     
                    multipart.addBodyPart(messageBodyPart);
     
                       MimeBodyPart messageBodyPart2 = new MimeBodyPart();
     
     
                     FileDataSource fileDataSource = new FileDataSource(file) {
                         @Override
                         public String getContentType() {
                             return "application/octet-stream";
                         }
                     };
     
     
     
     
                       messageBodyPart2.setDataHandler(new DataHandler(fileDataSource));
     
     
     
                       messageBodyPart2.setFileName(file.getName());
     
                       multipart.addBodyPart(messageBodyPart2);
     
     
                       message.setContent(multipart);
     
     
                    Transport.send(message);
                    System.out.println("sending message");
               }
              catch (MessagingException mex) 
               {
                   mex.printStackTrace();
                   Exception ex = null;
                   if ((ex = mex.getNextException()) != null) {
                 ex.printStackTrace();
                   }
    }
               }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut source erreur
    Bonjour,

    Si ça marche dans un contexte et pas un autre il faut chercher du côté du changement de contexte. Pas forcément l'OS, l'Apache, le réseau, etc mais comment l'appli fonctionne. De nombreux objets ne sont pas testé et il est possible que dans un nouveau contexte d'utilisation certains soient null, par exemple file.

    Bon courage,

  6. #6
    Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Bonjour,
    je vois que le problème provient du l'OS sous lequel est installé le serveur distant Tomcat,
    (j'ai déjà rencontré un problème d'affichage de données qui m'a fallut de forcer le charset utf-8).
    Dans ce cas le problème réside dans l'interprétation du MIME Type ou Content Type, il faut forcer d'utiliser une MIME Type et le définir explicitement dans le code.
    Ma question, c'est koi le MIME Type à utiliser et dans quelle partie du code dois je le mettre??

  7. #7
    Membre régulier Avatar de juridakus
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2008
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 82
    Points : 115
    Points
    115
    Par défaut
    salut,
    Moi je l'envoi avec le bout de code suivant quelque soit le serveur distant ou local.
    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
     
    ...
    // Première partie du message
    			MimeBodyPart messageBodyPart = new MimeBodyPart();
     
    //Ajout de la première partie du message dans un objet Multipart
    			MimeMultipart multipart = new MimeMultipart();
    			multipart.addBodyPart(messageBodyPart);
     
    // Contenu du message
     
    			String texte = "<H1>"+description+"</H1>";
    			messageBodyPart.setContent(texte, "text/html");
     
    // Partie de la pièce jointe
    			messageBodyPart = new MimeBodyPart();
    			DataSource source = new FileDataSource(file);
    			messageBodyPart.setDataHandler(new dataHandler(source));
    			messageBodyPart.setFileName(name);
     
    //Ajout de la partie pièce jointe
    			multipart.addBodyPart(messageBodyPart);
     
    			message.setContent(multipart);
    ...
    Bon courage...

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2010
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Envoyer un mail de confirmation
    Bonjour à tous,

    Au secours, je suis entrain de développez une appli. de gestions un utilisateur où je dois envoyer un mail à chaque inscription d'utilisateur dans la base de données. C'est du Java Web avec MySQL.

    Merci d'avance à tous

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 mail avec pièce jointe
    Par anirose dans le forum VBA Access
    Réponses: 6
    Dernier message: 08/11/2006, 12h45
  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