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();
}
});
} |
Partager