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
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..Envoyé par dietrich
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);
j utilise MimeMessage
il n y a pas de .addBodyPart
dans objet ets cette methode
merci
il faut utiliser un MultipartEnvoyé par dietrich
Code : Sélectionner tout - Visualiser dans une fenêtre à part Multipart mp = new MimeMultipart();
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 ..Envoyé par dietrich
dsl, je n'aurais pas du laisser le ByteArrayDataSource, ça prete à confusion.
tu pourrais t'en sortir en utilisant un MimePart,
la signature du DataHandler avec un objet et le contenu..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DataHandler(java.lang.Object obj, java.lang.String mimeType)
j ai utilise 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 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(); } }
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
bonjour;
il te manque peut etre que le header!
Code : Sélectionner tout - Visualiser dans une fenêtre à part messageBodyPart.setHeader("Content-ID","xxx");
j ai reussi avec ceci
mais il y a bien sur un mais
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(); } } }
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
c'est peut etre
Code : Sélectionner tout - Visualiser dans une fenêtre à part messageBodyPart.setHeader("Content-ID", "<image>");
Code : Sélectionner tout - Visualiser dans une fenêtre à part messageBodyPart.setHeader("image/jpeg", "<image>");
avec yahoo qu il y ai une piece jointe ou non le mail atterit directement dans les spams
sous hotmail toujours rien
si je l envoi uniquement en mode text je le recoit sous hotmail
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
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
Partager