001 002 import java.util.Properties; 003 004 import javax.mail.FetchProfile; 005 import javax.mail.Folder; 006 import javax.mail.Message; 007 import javax.mail.MessagingException; 008 import javax.mail.Session; 009 import javax.mail.Store; 010 011 012 public class Email { 013 014 public static void main(String[] args) { 015 String protocol = "imap"; 016 String host = "cookie.csail.mit.edu"; 017 String username = "6005"; 018 String password = "6005"; 019 020 if (args.length != 0) { 021 protocol = args[0]; 022 host = args[1]; 023 username = args[2]; 024 } 025 026 if (protocol.equals("imaps") 027 && host.equals("imap.csail.mit.edu")) { 028 // For CSAIL mail only: 029 // CSAIL's certificate authority is stored in a file called "cacerts-plus-csail" 030 // assumed to be in the current directory. Certificates can be added and 031 // removed from this file using the keytool command included with Java. 032 System.setProperty("javax.net.ssl.trustStore", "cacerts-plus-csail"); 033 System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); 034 035 // If you're using MIT mail (or another mail system that has its 036 // certificates by one of the major certificate authorities, which 037 // Java already knows about), then you don't need the two lines above, 038 // and you can comment them out. 039 } 040 041 try { 042 // Create a session and a store 043 Properties props = new Properties(); 044 Session session = Session.getDefaultInstance(props, null); 045 Store store = session.getStore(protocol); 046 047 // Connect to the server 048 System.err.println("Connecting..."); 049 store.connect(host, username, password); 050 System.err.println("Connected to " + host); 051 052 // Display folder names and message counts 053 Folder[] folders = store.getDefaultFolder().list("*"); 054 for (Folder f : folders) { 055 System.out.println(f.getMessageCount() + "\t" + f.getFullName()); 056 } 057 058 // Close the connection 059 store.close(); 060 061 } catch (MessagingException e) { 062 throw new RuntimeException(e); 063 } 064 } 065 }