Récupérer les mails d'un compte Gmail
3 participants
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Transfert des données :: Le mailing
Page 1 sur 1
Récupérer les mails d'un compte Gmail
Voici un deuxième exemple de code Java pour récupérer les mails d'un compte Gmail. Le code s'appuie sur le Java Tip suivant : http://www.java-tips.org/other-api-tips/javamail/connecting-gmail-using-pop3-connection-with-ssl-3.html
Pour tester ce code, vous devez juste remplacer les balises <votre-adresse-gmail> et <votre-mot-de-passe> par vos propres informations.
et ajouter à votre classpath le jar mail.jar de l'API javamail
Pour tester ce code, vous devez juste remplacer les balises <votre-adresse-gmail> et <votre-mot-de-passe> par vos propres informations.
et ajouter à votre classpath le jar mail.jar de l'API javamail
- Code:
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.URLName;
import com.sun.mail.pop3.POP3SSLStore;
public class RetrieveGMail {
public static void main(String[] args) throws MessagingException
{
String host = "pop.gmail.com";
String username = "<votre-adresse-gmail>@gmail.com";
String password = "<votre-mot-de-passe>";
Properties props = new Properties();
props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.pop3.socketFactory.fallback","false");
props.setProperty("mail.pop3.port","995");
props.setProperty("mail.pop3.socketFactory.port","995");
URLName url = new URLName("pop3",host ,995,"",username, password);
Session session = Session.getInstance(props, null);
Store store = new POP3SSLStore(session, url);
store.connect();
Folder folder = store.getFolder("inbox");
try{folder.open(Folder.READ_WRITE);}
catch(MessagingException ex)
{folder.open(Folder.READ_ONLY);}
int messageNb = folder.getMessageCount();
System.out.println("total message number: "+messageNb);
Message[] msgs = folder.getMessages();
for(int i=0;i<msgs.length;i++)
{
Message m = msgs[i];
System.out.println("Retrieving message n° "+i+": subject="+m.getSubject());
}
store.close();
}
}
Dernière édition par Gus le Mer 10 Aoû - 14:42, édité 1 fois
imports java
Bonjour,
Ayant un niveau débutant en java, pouvez-vous indiquer quelles sont les classes et les packages importés ainsi que les fichiers jar et l'endroit où on peut les télécharger pour que le code fonctionne.
merci par avance
Ayant un niveau débutant en java, pouvez-vous indiquer quelles sont les classes et les packages importés ainsi que les fichiers jar et l'endroit où on peut les télécharger pour que le code fonctionne.
merci par avance
yoruichiy- Messages : 2
Date d'inscription : 10/08/2011
Re: Récupérer les mails d'un compte Gmail
Pour que le code fonctionne il faut juste ajouter dans le classpath de votre application Java (ou de votre projet Eclipse) le fichier jar "mail.jar" fourni par l'API JavaMail : http://www.oracle.com/technetwork/java/javamail/index.html
Je viens de re-tester le code sous forme de classe Java autonome avec une méthode publique main (voir le code source complet dans le premier message), et pour moi ça fonctionne bien. Si vous rencontrez d'autres problèmes, n'hésitez pas à me demander.
Cordialement,
Je viens de re-tester le code sous forme de classe Java autonome avec une méthode publique main (voir le code source complet dans le premier message), et pour moi ça fonctionne bien. Si vous rencontrez d'autres problèmes, n'hésitez pas à me demander.
Cordialement,
Re: Récupérer les mails d'un compte Gmail
merci pour ces informations,
j'ai seulement changé le nom de la classe et instancié les variables
j'ai executé le code et j'obtiens:
Exception in thread "main" javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:130)
at javax.mail.Service.connect(Service.java:236)
at javax.mail.Service.connect(Service.java:137)
at javax.mail.Service.connect(Service.java:86)
at TryGmailPop.main(TryGmailPop.java:30)
D'où viens cette erreur et comment la résoudre.
j'ai seulement changé le nom de la classe et instancié les variables
j'ai executé le code et j'obtiens:
Exception in thread "main" javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.ConnectException: Connection timed out: connect
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:130)
at javax.mail.Service.connect(Service.java:236)
at javax.mail.Service.connect(Service.java:137)
at javax.mail.Service.connect(Service.java:86)
at TryGmailPop.main(TryGmailPop.java:30)
D'où viens cette erreur et comment la résoudre.
yoruichiy- Messages : 2
Date d'inscription : 10/08/2011
Re: Récupérer les mails d'un compte Gmail
L'erreur que tu as obtenu (un time out) semble indiquer que tu as un problème de connexion au serveur de Gmail. ca peut être dû à un problème de ton coté (firewall / routeur) ou bien c'est Gmail qui était momentanément surbooké (dans ce cas, en insistant, ça devrait finir par marcher).
Je n'ai pas de remède miracle pour que ça marche. Tu peux néanmoins activer le mode debug sur ton objet Session pour voir de plus près ce qu'il se passe :
Session session = Session.getInstance(props, null);
session.setDebug(true);
Bon courage et j'espère que ça va finir par marcher pour toi aussi.
PS : Je t'encourage à aller voir le Java Tips qui m'a permis de réaliser ça (si c'est pas déjà fait) :
http://www.java-tips.org/other-api-tips/javamail/connecting-gmail-using-pop3-connection-with-ssl-3.html
Je n'ai pas de remède miracle pour que ça marche. Tu peux néanmoins activer le mode debug sur ton objet Session pour voir de plus près ce qu'il se passe :
Session session = Session.getInstance(props, null);
session.setDebug(true);
Bon courage et j'espère que ça va finir par marcher pour toi aussi.
PS : Je t'encourage à aller voir le Java Tips qui m'a permis de réaliser ça (si c'est pas déjà fait) :
http://www.java-tips.org/other-api-tips/javamail/connecting-gmail-using-pop3-connection-with-ssl-3.html
Re: Récupérer les mails d'un compte Gmail
Bonjour,
Je viens d'essayer votre bout de code mais je tombe sur l'erreur suivante:
Exception in thread "main" javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.UnknownHostException: pop.gmail.com
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:148)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at Mail.main(Mail.java:30)
Auriez vous quelques explications à ce sujet car je suis clairement dans une impasse..
Je viens d'essayer votre bout de code mais je tombe sur l'erreur suivante:
Exception in thread "main" javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.UnknownHostException: pop.gmail.com
at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:148)
at javax.mail.Service.connect(Service.java:275)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at Mail.main(Mail.java:30)
Auriez vous quelques explications à ce sujet car je suis clairement dans une impasse..
iROmZ- Messages : 1
Date d'inscription : 02/01/2012
Re: Récupérer les mails d'un compte Gmail
Je viens de lancer le code source (ci-dessus) à l'instant en ayant remplacé les deux balises par mes infos persos et ça a très bien fonctionné. Avast m'a juste affiché un petit avertissement disant qu'une connexion sécurisé allait être créée avec google et ensuite j'ai vu défiler tous les messages de ma boite. La seule librarie Jar que j'ai mis dans mon projet Eclipse est le jar : "mail.jar"
Bref, je ne peux que redire ce que j'avais dis pour yoruichiy : l'erreur ne vient pas du code java mais d'un soucis de paramétrage sur votre machine. (par exemple : blocage firewall de la connexion sécurisée ssl...). Voici à tout hasard un lien vers un topic d'un gars qui a le même soucis que vous, on lui conseille de faire des tests de connexion avec telnet (pour vista ou seven, utiliser plutôt le freeware : putty.exe)
http://www.java-forums.org/networking/26420-error-connecting-gmail-server.html
Pour finir, le java Tip dont j'ai repris le code source :
http://www.java-tips.org/other-api-tips/javamail/connecting-gmail-using-pop3-connection-with-ssl-6.html
Bon courage !
Bref, je ne peux que redire ce que j'avais dis pour yoruichiy : l'erreur ne vient pas du code java mais d'un soucis de paramétrage sur votre machine. (par exemple : blocage firewall de la connexion sécurisée ssl...). Voici à tout hasard un lien vers un topic d'un gars qui a le même soucis que vous, on lui conseille de faire des tests de connexion avec telnet (pour vista ou seven, utiliser plutôt le freeware : putty.exe)
http://www.java-forums.org/networking/26420-error-connecting-gmail-server.html
Pour finir, le java Tip dont j'ai repris le code source :
http://www.java-tips.org/other-api-tips/javamail/connecting-gmail-using-pop3-connection-with-ssl-6.html
Bon courage !
Sujets similaires
» Envoyer un mail par un compte Gmail
» Récupérer le contenu d'une page web statique
» Récupérer des informations de base sur les lecteurs de disque dur
» API Java pour gérer les mails : JavaMail
» Récupérer le contenu d'une page web statique
» Récupérer des informations de base sur les lecteurs de disque dur
» API Java pour gérer les mails : JavaMail
Projet gus05 de développement Java :: Chantiers :: Chantiers techniques :: Transfert des données :: Le mailing
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Mar 16 Sep - 12:01 par Gus
» Présentation du jeu Vindinium
Jeu 20 Fév - 15:32 par Gus
» Rechercher la cible la plus proche avec le "Breadth First Search"
Jeu 20 Fév - 13:06 par Gus
» Impression d'écran avec sélection de zone
Jeu 20 Fév - 12:12 par Gus
» Envoyer un mail par un compte Gmail
Jeu 25 Avr - 14:04 par Gus
» Streaming : comment télécharger les vidéos
Lun 4 Fév - 19:59 par Gus
» Synology : installer ipkg
Mar 22 Jan - 21:22 par Gus
» Trouver le type de lecteur avec JNA
Mer 9 Jan - 23:11 par Gus
» Adresse ip publique et adresse ip privée, Internet box et UPnP
Mer 9 Jan - 21:02 par Gus
» Accéder au numéro de série du lecteur par un script vb
Mer 9 Jan - 19:31 par Gus