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

API standards et tierces Java Discussion :

envoi mail avec fichier joint


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut envoi mail avec fichier joint
    j utilise une classe pour envoyer des mail que j ai trouve sur ce site

    j aurai besoin d envoye des mails en html contenant des photos

    pour le texte c est bon

    mais je n arrive pas a joindre des fichiers avec

    commen faire


    merci de votre aide

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut Re: envoi mail avec fichier joint
    Citation Envoyé par dietrich
    j utilise une classe pour envoyer des mail que j ai trouve sur ce site

    j aurai besoin d envoye des mails en html contenant des photos

    pour le texte c est bon

    mais je n arrive pas a joindre des fichiers avec

    commen faire


    merci de votre aide
    Il faut les mettre dans l'objet MimeBodyPart..
    un petit exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                    MimeBodyPart mbp2 = new MimeBodyPart();
                    DataSource ds = new ByteArrayDataSource(flux,     "application/x-any", "test");
                    mbp2.setDataHandler(new DataHandler(ds));
                    mbp2.setFileName("offre.pdf");
                    mp.addBodyPart(mbp2);

  3. #3
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    j utilise MimeMessage

    il n y a pas de .addBodyPart

    dans objet ets cette methode

    merci

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par dietrich
    j utilise MimeMessage

    il n y a pas de .addBodyPart

    dans objet ets cette methode

    merci
    il faut utiliser un Multipart

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Multipart mp = new MimeMultipart();

  5. #5
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    j utilise java 1.4.2

    je ne trouve pas ByteArrayDataSource

    je fais import quoi

    j ai trouve ca sur le net
    java.lang.Object
    extended by net.suberic.crypto.ByteArrayDataSource

    mais chez moi il ne connais pas

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Citation Envoyé par dietrich
    j utilise java 1.4.2

    je ne trouve pas ByteArrayDataSource

    je fais import quoi

    j ai trouve ca sur le net
    java.lang.Object
    extended by net.suberic.crypto.ByteArrayDataSource

    mais chez moi il ne connais pas
    ByteArrayDataSource est une implementation de l'interface DataSource, j'etais obligé de le daire parceque il n'y avait pas un autre moyen pour mettre un tableau de byte dans le multipart; donc toi t'aura pas besoin de ça, je ne sais pas ce que tu va envoyer en fichier joint; regarde ce qu'il ya comme implementation de DataSource, si c'est des images ça doit exister ..

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    dsl, je n'aurais pas du laisser le ByteArrayDataSource, ça prete à confusion.

    tu pourrais t'en sortir en utilisant un MimePart,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataHandler(java.lang.Object obj, java.lang.String mimeType)
    la signature du DataHandler avec un objet et le contenu..

  8. #8
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    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
     public void JoinFile( String path )
       {
    	   try
    	   {
    		   mmp= new MimeMultipart();path = "H035.jpg";
     
    		   mbp = new MimeBodyPart();
    		   File f = new File( path );
               FileDataSource fds = new FileDataSource( f );
               mbp.setDataHandler( new DataHandler(fds) );
               mbp.setFileName( fds.getName() );
               String s = fds.getName();
               mmp.addBodyPart(mbp);
     
               mm.setContent( mmp );
    	   }
    	   catch (Exception ex) 
    	   {
    			ex.printStackTrace();
    	   }
       }
    j ai utilise ceci

    cela ne genere pas d exception
    tout se deroule normalment

    mais je n ai pas eu le fichier dans mon mail
    j ai juste mon texte

  9. #9
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    bonjour;

    il te manque peut etre que le header!


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      messageBodyPart.setHeader("Content-ID","xxx");

  10. #10
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    j ai reussi avec ceci
    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
    package Utils;
     
    import java.util.*;
     
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
     
    public class MailDocJoined {
     
     
    	public static void SendMail( String to, String subject, String file )
    	{
    		try
    		{
    			// Create some properties and get the default Session;
    			Properties props = System.getProperties();
    			props.put("mail.smtp.host", "mx.adelis.net");
    			Session session = Session.getDefaultInstance(props, null);
    			String from = Const.siteEmail;
     
    //			Crée le message
    			Message message = new MimeMessage(session);
     
    //			On met les attributs d'entête ( sujet, adresse, expéditeur, destinataire)
    			message.setSubject("Embedded Image");
    			message.setFrom(new InternetAddress(from));
    			message.addRecipient(Message.RecipientType.TO,
    					new InternetAddress(to));
     
    //			Crée la partie message pour le contenu
    			BodyPart messageBodyPart = new MimeBodyPart();
    			String htmlText = "<H1>Hello</H1>" +
    			"<img src=\"cid:image\">";
     
    //			Type et sous-type du message
    			messageBodyPart.setContent( htmlText, "text/html" );
     
    //			Crée l'objet Multipart qui contiendra toutes les parties du message
    //			on doit passer en paramètre "related", puisque les deux parties entres elles
    //			sont reliées
    			MimeMultipart multipart = new MimeMultipart( "related" );
    			multipart.addBodyPart( messageBodyPart );
     
    //			Crée l'autre partie du message qui contient l'image
    			messageBodyPart = new MimeBodyPart();
     
    //			Place l'image dans la partie
    			DataSource fds = new FileDataSource( file );
    			messageBodyPart.setDataHandler( new DataHandler(fds) );
     
    //			Attribue un nom à l'entête de l'image ( pour faire le lien)
    			messageBodyPart.setHeader("Content-ID", "<image>");
     
    //			Ajoute la partie à l'objet Multipart
    			multipart.addBodyPart( messageBodyPart  );
     
    //			Ajoute l'objet Multipart au message
    			message.setContent(multipart);
     
    			Transport.send(message);
    		}
    		catch (Exception ex) 
    		{
    			ex.printStackTrace();
    		}
    	}
    }
    mais il y a bien sur un mais

    sur ma boite laposte ca marche nikel
    sur ma boite wanadoo je ne reçoit que le text
    sur ma boite hotmail je ne recoit meme pas le mail

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageBodyPart.setHeader("Content-ID", "<image>");
    c'est peut etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    messageBodyPart.setHeader("image/jpeg", "<image>");

  12. #12
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    avec yahoo qu il y ai une piece jointe ou non le mail atterit directement dans les spams

    sous hotmail toujours rien

  13. #13
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    si je l envoi uniquement en mode text je le recoit sous hotmail

  14. #14
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Points : 5 059
    Points
    5 059
    Par défaut
    C'est peut etre du au fait que t'envoie un mail au format html, essaye juste avec le format text, e, attachant des images en fichier joint:

    FAQ de sun : http://java.sun.com/products/javamail/FAQ.html

  15. #15
    Membre averti
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Points : 301
    Points
    301
    Par défaut
    un mail en text + une piece jointe le marche pas non plus sur hotmail

    ca marche sur les autre meme si sur yahoo cela arrive dans les spam


    merci tout de meme c est sympas

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/10/2014, 09h42
  2. [XL-2007] Erreur sur mon code envoi mail avec fichier joint
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2014, 19h08
  3. Envoi Mail avec fichier joint compressé
    Par dav_e77 dans le forum Général VBA
    Réponses: 1
    Dernier message: 25/11/2006, 18h27
  4. [c#] Envoi d'un mail avec fichier joint
    Par macfred dans le forum ASP.NET
    Réponses: 8
    Dernier message: 05/12/2005, 12h15
  5. envoi mail avec piece jointe fichier excel
    Par flogreg dans le forum ASP
    Réponses: 12
    Dernier message: 20/12/2004, 17h02

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