ENVOI ET LECTURE DE MAILS (+AUTHENTIFICATION +SSL +PIÈCES JOINTES +HTML +IMAGES)

abdoo05 Messages postés 45 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 22 décembre 2005 - 25 nov. 2005 à 09:08
Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007 - 19 juin 2013 à 11:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34022-envoi-et-lecture-de-mails-authentification-ssl-pieces-jointes-html-images

Fraisoo37 Messages postés 12 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 19 janvier 2007
19 juin 2013 à 11:49
Bonjour,

Je me permet de relancer ce sujet car je rencontre un problème lors de l'envoi du mail :
Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect

Est ce que quelqu'un aurait une idée? Merci pour vos réponses.
cs_ghizou78 Messages postés 3 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 9 juin 2010
9 juin 2010 à 16:32
Alooooooooooooooooooooooooooooooo:)

Relance!!(Récupération des piéces jointes)
cs_ghizou78 Messages postés 3 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 9 juin 2010
9 juin 2010 à 15:32
Bonjour,

Je cherche un script en java qui permet de récupérer les piéces jointes des mails reçus depuis ma messagerie(serveur pop3).

Si quelq'un peut m'aider à le trouver.(c trés urgent)

Merci d'avance.

salutations
cs_ghizou78 Messages postés 3 Date d'inscription mardi 25 mai 2010 Statut Membre Dernière intervention 9 juin 2010
9 juin 2010 à 13:21
Je trouve un script qui permet d'extraire des piéces jointes des maild reçus.
Si quelequ'un peut m'aider(C tres urgent).

Merci d'avance.
codessources_Cain Messages postés 8 Date d'inscription dimanche 14 mars 2004 Statut Membre Dernière intervention 23 juillet 2009
23 juil. 2009 à 12:46
Bonjour,

ton code est bien utile mais toutefois il ya une erreur: dans la méthode setContent(final Message message, final MimeMultipart alternative, final MimeMultipart attachment, final String body)

// Contenu mixte: Pièces jointes + texte
if (0 != alternative.getCount() || null != body)

LE REMPLACER PAR
if (0 != alternative.getCount() && null != body)

Salutations!!!
Syplex Messages postés 3 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 2 décembre 2008
2 déc. 2008 à 19:24
a mon avis ton paramètre pop est pas bon. Tu es sur que pop3hot.com est correct?
Essai un pop du type pop.orange.fr (pour orange) ou autre que tu connaitrais.
cs_ninas Messages postés 5 Date d'inscription dimanche 12 décembre 2004 Statut Membre Dernière intervention 28 juin 2010
2 déc. 2008 à 00:12
a la reception j'utilise gmail ou hotmail et ça me renvois:

Exception in thread "main" javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.UnknownHostException: pop3hot.com
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:161)
at javax.mail.Service.connect(Service.java:288)
at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at mail.MailReceiver.getMessages(MailReceiver.java:87)
at mail.MailReceiver.main(MailReceiver.java:116)
Caused by: java.net.UnknownHostException: pop3hot.com
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:233)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:189)
at com.sun.mail.pop3.Protocol.(Protocol.java:94)
at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:214)
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:157)
... 5 more

quelqu'un a t il une idée?
merci
hero01 Messages postés 12 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 9 avril 2009
3 juil. 2008 à 15:57
bonjour, mon problem c ke j'execute pour recevoire mes nc mail sur gmail rien ne se passe.
karoudja Messages postés 4 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 17 août 2007
16 oct. 2007 à 12:13
En essayant d'envoyer un email via mon serveur SMPT (ssl) j'ai eu cette erreur:

Exception in thread "main" javax.mail.MessagingException: Exception reading response;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1407)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1205)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)

visiblement il y a un problème avec la création des clefs. QQun a déjà eu ce genre de problème??? je ne vois vraiment pas comment résoudre cette erreur... merci
dieyeline Messages postés 3 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 juin 2007
22 juin 2007 à 19:32
Merci Syplex par la meme occasion gé pu resoure mon blem j'avais d'autre package qui avaient les memes classes il fallait les suprimez
Syplex Messages postés 3 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 2 décembre 2008
22 juin 2007 à 15:02
j'ai trouvé la solution !
En gros j'avais une archive jar qui etait bonne sous la jdk 1.3 mais pas bonne sous la 1.4... Une fois supprimée tout fonctionne !
Merci pour le code !
dieyeline Messages postés 3 Date d'inscription lundi 13 février 2006 Statut Membre Dernière intervention 22 juin 2007
22 juin 2007 à 14:10
Salut tout le monde,

J'essai ce code qd je le lance je recois un message de ce type :
Exception in thread "main" java.lang.SecurityException: class "javax.mail.internet.MimePart"'s signer information does not match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(ClassLoader.java:775)
at java.lang.ClassLoader.preDefineClass(ClassLoader.java:487)
at java.lang.ClassLoader.defineClass(ClassLoader.java:614)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

si qlq a une idée s8 preneur
Syplex Messages postés 3 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 2 décembre 2008
22 juin 2007 à 12:01
Salut tout le monde,

J'ai mis a essai ce code qui m'a l'air somme toute tres bien, neanmoins qd je le lance je recois un message d'insulte de ce type la :

invalid SHA1 signature file digest for javax/activation/DataContentHandlerFactory.class
java.lang.SecurityException: invalid SHA1 signature file digest for javax/activation/DataContentHandlerFactory.class

at sun.security.util.SignatureFileVerifier.verifySection(SignatureFileVerifier.java:351)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:203)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:258)
at java.util.jar.JarVerifier.update(JarVerifier.java:213)
at java.util.jar.JarFile.initializeVerifier(JarFile.java:363)
at java.util.jar.JarFile.getInputStream(JarFile.java:437)
at sun.misc.URLClassPath$5.getInputStream(URLClassPath.java:683)
at sun.misc.Resource.getBytes(Resource.java:75)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:472)
at java.net.URLClassLoader.access$500(URLClassLoader.java:109)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:848)
at java.security.AccessController.doPrivileged1(Native Method)
at java.security.AccessController.doPrivileged(AccessController.java:389

at java.net.URLClassLoader.findClass(URLClassLoader.java:371)
at java.lang.ClassLoader.loadClass(ClassLoader.java:570)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:442)
at java.lang.ClassLoader.loadClass(ClassLoader.java:502)


Si ca parle a qq un je suis preneur de conseils...

Merci d'avance !
mourad3035 Messages postés 2 Date d'inscription mardi 13 mars 2007 Statut Membre Dernière intervention 1 mai 2007
1 mai 2007 à 23:21
Salut a tous,
je n'arrive pas a envoyer un simple mail avec mon compte gmail aider moi
sbouubi Messages postés 1 Date d'inscription jeudi 13 octobre 2005 Statut Membre Dernière intervention 18 avril 2007
18 avril 2007 à 15:16
Salut à tous. Mon souci à moi c'est que j'arrive bien à me connecter à mon compte gmail et lire mes messages mais qu'une seul fois.
Est ce que quelqu'aurais une idée ?
christools7 Messages postés 6 Date d'inscription lundi 21 mars 2005 Statut Membre Dernière intervention 13 avril 2007
13 avril 2007 à 13:00
bonjour ,moi mon probleme c'est de pouvoir lire/telecharger les pièces jointe avec javaMail :-(
si vous avez des astuces et exemples de cote je suis preneur
Merci
simo5266 Messages postés 13 Date d'inscription vendredi 28 octobre 2005 Statut Membre Dernière intervention 5 juillet 2008
2 avril 2007 à 18:45
Bonjour,

J'ai un petit probleme le voila ;
Exception in thread "main" java.lang.SecurityException: Access to default session denied
at javax.mail.Session.getDefaultInstance(Session.java:292)
at MailReceiver.(MailReceiver.java:63)
at test.main(test.java:32)
est ce que ya qq'1 ki peut m'expliquer d'ou vient ce prob?

merci d'avance
twelding Messages postés 2 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 2 mars 2007
2 mars 2007 à 13:26
Ok, désolé, il suffisait que j'ajoute le pop3.jar qui me manquait.
twelding Messages postés 2 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 2 mars 2007
2 mars 2007 à 13:05
Ca a l'ir très bien MAIS... et oui il y a un "mais"... j'obtiens une erreur qui est la suivante:

Exception in thread "main" javax.mail.NoSuchProviderException: No provider for pop
at javax.mail.Session.getProvider(Session.java:249)
at javax.mail.Session.getStore(Session.java:323)
at acquisition.MailReceiver.(MailReceiver.java:67)
at acquisition.MailReceiver.(MailReceiver.java:79)
at acquisition.MailReceiver.main(MailReceiver.java:114)

Là où ça coince, c'est :

final URLName urln = new URLName("pop3", host, port, null, userName,password);
_store = session.getStore(urln);

Dans le constructeur principal. Et bien entendu je me demande pourquoi.

Une idée? Merci
freyssenonlio Messages postés 2 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 24 janvier 2007
24 janv. 2007 à 16:29
Après quelques recherches voici la solution que j'ai mis en place pour obtenir le contenu d'un message. J'ai remplacé

results = new MailMessage[messages.length];
for (int i = 0; i < messages.length; ++i){
results[i] = new MailMessage(messages[i]);


par
results = new MailMessage[messages.length];
for (int i = 0; i < messages.length; ++i){
MimeMultipart contenu=(MimeMultipart) messages[i].getContent();
String messageContenu = (String) contenu.getBodyPart(1).getContent();
results[i] = new MailMessage(messages[i], messageContenu);


Ensuite dans la classe MailMessage on rajoute un constructeur
 // surcharge permettant de placer le contenu du message directement dans la valeur et non pas un mime inexploitable
    public MailMessage(final Message msg, String contenu)
    throws IOException, MessagingException {
        _from = getInternetAddress(msg.getFrom())[0];
        _to = getInternetAddress(msg.getRecipients(Message.RecipientType.TO));
        _cc = getInternetAddress(msg.getRecipients(Message.RecipientType.CC));
        _subject = msg.getSubject();
        _content = contenu;
        _sendDate = msg.getSentDate();
        _receivedDate = msg.getReceivedDate();
        
    }


Ensuite il suffit d'utiliser la fonction getContent ...

Voila ce n'est peut-être pas la solution parfaite mais elle sera sans doute utile à certains.
freyssenonlio Messages postés 2 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 24 janvier 2007
24 janv. 2007 à 15:18
Bravo !
Ca fait plus d'une demi journée que je cherchais à développer un code dans le genre à partir de javamail ! Et à cause de gmail rien ne marchait jamais ... et avec ton script rien que du bonheur ! :)

Juste un petit hic ... tout marche très bien sauf que l'on n'a me semble t il pas accès au corps du message ??? Comment pourrais je le récupérer ? As tu une idée ?

En tout cas merci beaucoup pour ces fonctions bien utiles et documentées
capoueidiablo Messages postés 316 Date d'inscription jeudi 9 janvier 2003 Statut Membre Dernière intervention 1 février 2010 1
20 nov. 2006 à 23:10
Tiens, un collègue de l'insia :)
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
15 nov. 2006 à 09:35
A mon avis tu n'as pas de compte sur le SMTP que tu utilise. Il faut que ton adresse mail corresponde au serveur SMTP pour que tu aie le droit d'envoyer des mails par ce serveur SMTP.

Il ne suffit pas de définir les login et mot de passe, il faut aussi définir les serveurs d'envoi (pop ou imap) et de réception (smtp).
Berty2000 Messages postés 14 Date d'inscription jeudi 17 octobre 2002 Statut Membre Dernière intervention 15 novembre 2006
15 nov. 2006 à 01:16
j'obtiens cette erreur :

nested exception is:
class com.sun.mail.smtp.SMTPAddressFailedException: 550 No SMTP service for unauthorized users



J'ai pourtant bien defini le login et mot de passe dans le constructeur...

???
John_Doe_88 Messages postés 606 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 13 décembre 2006
7 nov. 2006 à 15:24
Salut,

En ce moment je prog un webmail dans le meme genre.
Je cherche à extraire des pièces jointes des mails recus... Tu n'aurais pas fait ça par hasard ?

@+

JohnDoe
djxtc Messages postés 2 Date d'inscription lundi 26 janvier 2004 Statut Membre Dernière intervention 26 juillet 2006
26 juil. 2006 à 12:22
A part un i à remplacer par un j dans le main :
System.out.print(to[i].getAddress() +
à remplacer par
System.out.print(to[j].getAddress() +
sinon ca marche impec (je n'ai testé que la réception des mails), avec ou sans le ssl...

Du très bon boulot !
tarzent Messages postés 30 Date d'inscription vendredi 12 juillet 2002 Statut Membre Dernière intervention 15 mai 2009
10 mai 2006 à 19:35
As-tu pensé à activer le protocole POP dans gmail?
tULIPOs Messages postés 52 Date d'inscription vendredi 16 juillet 2004 Statut Membre Dernière intervention 18 juin 2008
26 févr. 2006 à 22:52
salut
tres cool ton prog mais le probléme et que je n'arrive pas a le faire marché meme sur gmail, voila l'exception que g:
Exception in thread "main" javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1227)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322)
at javax.mail.Service.connect(Service.java:258)
at javax.mail.Service.connect(Service.java:137)

at javax.mail.Service.connect(Service.java:86)
at javax.mail.Transport.send0(Transport.java:150)
at javax.mail.Transport.send(Transport.java:80)
at MailSender.sendMessage(MailSender.java:205)
at MailSender.main(MailSender.java:249)

stp si t'as une idée sur le probléme( smtp par exemple ) n'hesite pas a m'aider, merci d'avance :)
abdoo05 Messages postés 45 Date d'inscription samedi 9 avril 2005 Statut Membre Dernière intervention 22 décembre 2005
25 nov. 2005 à 09:08
salut,
j'ai déja les deux package mail.jar et activation.jar et je travail avec Jbuilder 2005,mais le probléme est que je n'ai pas arriver à les installer..
alors si tu pourra m'aider et merci d'avance
Rejoignez-nous