problème pour recevoir un Mail en java
salut tout le monde !!!
Dans le cadre d'un projet sur lequel je suis entrain de travailler, j'aimerai recevoir dans mon application java tous les Email à destination de "xxx@gmail.com", mais mon code renvoi une erreur du genre "javax.mail.AuthenticationFailedException: failed to connect", j'aimerai savoir d'où provient cette erreure et comment la resoundre.
merci d'avance.
et voici mon code :
Code:
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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| private static void receiveMessage() {
// 1 -> La session
//String host="pop.gmail.com";
String host="localhost";
String user="xxx@gmail.com";
String pwd="xxxxxx";
Properties properties = new Properties();
properties.setProperty("mail.store.protocol", "pop3");
properties.setProperty("mail.pop3.host", host);
properties.setProperty("mail.pop3.user", user);
// properties.setProperty("mail.pop3.auth","true");
Session session = Session.getInstance(properties);
// 2 -> Les dossiers
Store store = null;
Folder defaultFolder = null;
Folder inbox = null;
try {
store = session.getStore(new URLName("pop3://" + host));
store.connect(user, pwd);
defaultFolder = store.getDefaultFolder();
System.out.println("defaultFolder : " + defaultFolder.getName());
for (Folder folder : defaultFolder.list()) {
System.out.println(folder.getName());
}
inbox = defaultFolder.getFolder("INBOX");
printMessages(inbox);
} catch (Exception e) {
e.printStackTrace();
}
finally { // Ne pas oublier de fermer tout ça*!
close(inbox);
//inbox.close(true);
close(defaultFolder);
// defaultFolder.close(true);
try {
if (store != null && store.isConnected()) {
store.close();
}
}
catch (MessagingException e) {
e.printStackTrace();
}
}
}
private static void printMessages(Folder folder) {
try {
folder.open(Folder.READ_ONLY);
int count = folder.getMessageCount();
int unread = folder.getUnreadMessageCount();
System.out.println("Il y a " + count + " messages, dont " + unread + " non lus.");
for (int i = 1; i <= count; i++ ) {
Message message = folder.getMessage(i);
System.out.println("Message n° " + i);
System.out.println("Sujet : " + message.getSubject());
System.out.println("Expéditeur : ");
Address[] addresses = message.getFrom();
for (Address address : addresses) {
System.out.println("\t" + address);
}
System.out.println("Destinataires : ");
addresses = message.getRecipients(RecipientType.TO);
if (addresses != null) {
for (Address address : addresses) {
System.out.println("\tTo : " + address);
}
}
addresses = message.getRecipients(RecipientType.CC);
if (addresses != null) {
for (Address address : addresses) {
System.out.println("\tCopie : " + address);
}
}
System.out.println("Content : ");
for (String line : inputStreamToStrings(message.getInputStream())) {
System.out.println(line);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
private static void close(Folder folder) {
if (folder != null && folder.isOpen()) {
try {
folder.close(false); // false -> On n'efface pas les messages marqués DELETED
}
catch (Exception e) {
e.printStackTrace();
}
}
}
private static Iterable<String> inputStreamToStrings(InputStream inputStream) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public static void main(String[] args) {
// TODO code application logic here
SwingUtilities.invokeLater(new Runnable(){
public void run(){
//FenConnexion cnx=new FenConnexion();
// new FenTicket1();
receiveMessage();
}
});
} |