看看这个例子吧。
/*
* @(#)folderlist.java 1.22 98/06/10
*
* Copyright (c) 1996-1997 Sun Microsystems, Inc. All Rights Reserved.
*
*/import java.util.Properties;
import javax.mail.*;/**
* Demo app that exercises the Message interfaces.
* List information about folders.
*
* @author John Mani
* @author Bill Shannon
*/public class folderlist {
static String protocol = null;
static String host = null;
static String user = null;
static String password = null;
static String root = null;
static String pattern = "%";
static boolean recursive = false;
static boolean debug = false; public static void main(String argv[]) throws Exception {
int optind;
for (optind = 0; optind < argv.length; optind++) {
if (argv[optind].equals("-T")) {
protocol = argv[++optind];
} else if (argv[optind].equals("-H")) {
host = argv[++optind];
} else if (argv[optind].equals("-U")) {
user = argv[++optind];
} else if (argv[optind].equals("-P")) {
password = argv[++optind];
} else if (argv[optind].equals("-R")) {
root = argv[++optind];
} else if (argv[optind].equals("-r")) {
recursive = true;
} else if (argv[optind].equals("-D")) {
debug = true;
} else if (argv[optind].equals("--")) {
optind++;
break;
} else if (argv[optind].startsWith("-")) {
System.out.println(
"Usage: folderlist [-T protocol] [-H host] [-U user] [-P password]");
System.out.println(
"\t[-R root] [-r] [pattern]");
System.exit(1);
} else {
break;
}
}
if (optind < argv.length)
pattern = argv[optind]; // Get a Properties object
Properties props = System.getProperties(); // Get a Session object
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug); // Get a Store object
Store store;
if (protocol != null)
store = session.getStore(protocol);
else
store = session.getStore(); // Connect
if (host != null || user != null || password != null)
store.connect(host, user, password);
else
store.connect(); // List namespace
Folder rf;
if (root != null)
rf = store.getFolder(root);
else
rf = store.getDefaultFolder();
Folder[] f = rf.list(pattern);
for (int i = 0; i < f.length; i++)
dumpFolder(f[i], "");
store.close();
} static void dumpFolder(Folder folder, String tab) throws Exception {
System.out.println(tab + "Name: " + folder.getName());
System.out.println(tab + "Full Name: " + folder.getFullName());
System.out.println(tab + "URL: " + folder.getURLName()); if (!folder.isSubscribed())
System.out.println(tab + "Not Subscribed"); if (((folder.getType() & Folder.HOLDS_MESSAGES) != 0) &&
folder.hasNewMessages())
System.out.println(tab + "Has New Messages"); if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) {
System.out.println(tab + "Is Directory");
if (recursive) {
Folder[] f = folder.list();
for (int i=0; i < f.length; i++)
dumpFolder(f[i], tab + " ");
}
}
}
}
/*
* @(#)folderlist.java 1.22 98/06/10
*
* Copyright (c) 1996-1997 Sun Microsystems, Inc. All Rights Reserved.
*
*/import java.util.Properties;
import javax.mail.*;/**
* Demo app that exercises the Message interfaces.
* List information about folders.
*
* @author John Mani
* @author Bill Shannon
*/public class folderlist {
static String protocol = null;
static String host = null;
static String user = null;
static String password = null;
static String root = null;
static String pattern = "%";
static boolean recursive = false;
static boolean debug = false; public static void main(String argv[]) throws Exception {
int optind;
for (optind = 0; optind < argv.length; optind++) {
if (argv[optind].equals("-T")) {
protocol = argv[++optind];
} else if (argv[optind].equals("-H")) {
host = argv[++optind];
} else if (argv[optind].equals("-U")) {
user = argv[++optind];
} else if (argv[optind].equals("-P")) {
password = argv[++optind];
} else if (argv[optind].equals("-R")) {
root = argv[++optind];
} else if (argv[optind].equals("-r")) {
recursive = true;
} else if (argv[optind].equals("-D")) {
debug = true;
} else if (argv[optind].equals("--")) {
optind++;
break;
} else if (argv[optind].startsWith("-")) {
System.out.println(
"Usage: folderlist [-T protocol] [-H host] [-U user] [-P password]");
System.out.println(
"\t[-R root] [-r] [pattern]");
System.exit(1);
} else {
break;
}
}
if (optind < argv.length)
pattern = argv[optind]; // Get a Properties object
Properties props = System.getProperties(); // Get a Session object
Session session = Session.getDefaultInstance(props, null);
session.setDebug(debug); // Get a Store object
Store store;
if (protocol != null)
store = session.getStore(protocol);
else
store = session.getStore(); // Connect
if (host != null || user != null || password != null)
store.connect(host, user, password);
else
store.connect(); // List namespace
Folder rf;
if (root != null)
rf = store.getFolder(root);
else
rf = store.getDefaultFolder();
Folder[] f = rf.list(pattern);
for (int i = 0; i < f.length; i++)
dumpFolder(f[i], "");
store.close();
} static void dumpFolder(Folder folder, String tab) throws Exception {
System.out.println(tab + "Name: " + folder.getName());
System.out.println(tab + "Full Name: " + folder.getFullName());
System.out.println(tab + "URL: " + folder.getURLName()); if (!folder.isSubscribed())
System.out.println(tab + "Not Subscribed"); if (((folder.getType() & Folder.HOLDS_MESSAGES) != 0) &&
folder.hasNewMessages())
System.out.println(tab + "Has New Messages"); if ((folder.getType() & Folder.HOLDS_FOLDERS) != 0) {
System.out.println(tab + "Is Directory");
if (recursive) {
Folder[] f = folder.list();
for (int i=0; i < f.length; i++)
dumpFolder(f[i], tab + " ");
}
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货