怎样得到未读邮件的个数!我只要得到未读邮件的个数就行了!怎么弄!

凉凉二点凉 2007-07-17 03:55:28
我在javamail的demo中找到了这个程序我直接抄了下来可是运行有错!
package testThinking;
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;

/*
* Demo app that exercises the Message interfaces.
* Access message given its UID.
* Show information about and contents of messages.
*
* @author John Mani
* @author Bill Shannon
*/

public class MailTest {

static String protocol="pop3";
static String host = ".......";
static String user = "test";
static String password = "test";
static String mbox = "INBOX";
static String url = null;
static boolean verbose = false;

public static void main(String argv[]) {
long uid = -1;
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("-v")) {
verbose = true;
} else if (argv[optind].equals("-f")) {
mbox = argv[++optind];
} else if (argv[optind].equals("-L")) {
url = argv[++optind];
} else if (argv[optind].equals("--")) {
optind++;
break;
} else if (argv[optind].startsWith("-")) {
System.out.println("Usage: uidmsgshow [-L url] [-T protocol] [-H host] [-U user] [-P password] [-f mailbox] [uid] [-v]");
System.exit(1);
} else {
break;
}
}

try {
if (optind < argv.length)
uid = Long.parseLong(argv[optind]);

// Get a Properties object
Properties props = System.getProperties();

// Get a Session object
Session session = Session.getInstance(props, null);
// session.setDebug(true);

// Get a Store object
Store store = null;
if (url != null) {
URLName urln = new URLName(url);
store = session.getStore(urln);
store.connect();
} else {
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();
}


// Open the Folder

Folder folder = store.getDefaultFolder();
if (folder == null) {
System.out.println("No default folder");
System.exit(1);
}

folder = folder.getFolder(mbox);
if (!folder.exists()) {
System.out.println(mbox + " does not exist");
System.exit(1);
}

if (!(folder instanceof UIDFolder)) {
System.out.println(
"This Provider or this folder does not support UIDs");
System.exit(1);
}

UIDFolder ufolder = (UIDFolder)folder;

folder.open(Folder.READ_WRITE);
int totalMessages = folder.getMessageCount();

if (totalMessages == 0) {
System.out.println("Empty folder");
folder.close(false);
store.close();
System.exit(1);
}

if (verbose) {
int newMessages = folder.getNewMessageCount();
System.out.println("Total messages = " + totalMessages);
System.out.println("New messages = " + newMessages);
System.out.println("-------------------------------");
}

if (uid == -1) {
// Attributes & Flags for ALL messages ..
Message[] msgs =
ufolder.getMessagesByUID(1, UIDFolder.LASTUID);

// Use a suitable FetchProfile
FetchProfile fp = new FetchProfile();
fp.add(FetchProfile.Item.ENVELOPE);
fp.add(FetchProfile.Item.FLAGS);
fp.add("X-Mailer");
folder.fetch(msgs, fp);

for (int i = 0; i < msgs.length; i++) {
System.out.println("--------------------------");
System.out.println("MESSAGE UID #" +
ufolder.getUID(msgs[i]) + ":");
dumpEnvelope(msgs[i]);
// dumpPart(msgs[i]);
}
} else {
System.out.println("Getting message UID: " + uid);
Message m = ufolder.getMessageByUID(uid);
if (m != null)
dumpPart(m);
else
System.out.println(
"This Message does not exist on this folder");
}

folder.close(false);
store.close();
} catch (Exception ex) {
System.out.println("Oops, got exception! " + ex.getMessage());
ex.printStackTrace();
}
System.exit(1);
}

public static void dumpPart(Part p) throws Exception {
if (p instanceof Message)
dumpEnvelope((Message)p);

/* Dump input stream
InputStream is = new BufferedInputStream(p.getInputStream());
int c;
while ((c = is.read()) != -1)
System.out.write(c);
*/

System.out.println("CONTENT-TYPE: " + p.getContentType());

Object o = p.getContent();
if (o instanceof String) {
System.out.println("This is a String");
System.out.println("---------------------------");
System.out.println((String)o);
} else if (o instanceof Multipart) {
System.out.println("This is a Multipart");
System.out.println("---------------------------");
Multipart mp = (Multipart)o;
int count = mp.getCount();
for (int i = 0; i < count; i++)
dumpPart(mp.getBodyPart(i));
} else if (o instanceof Message) {
System.out.println("This is a Nested Message");
System.out.println("---------------------------");
dumpPart((Part)o);
} else if (o instanceof InputStream) {
System.out.println("This is just an input stream");
System.out.println("---------------------------");
InputStream is = (InputStream)o;
int c;
while ((c = is.read()) != -1)
System.out.write(c);
}
}

public static void dumpEnvelope(Message m) throws Exception {
System.out.println("This is the message envelope");
System.out.println("---------------------------");
Address[] a;
// FROM
if ((a = m.getFrom()) != null) {
for (int j = 0; j < a.length; j++)
System.out.println("FROM: " + a[j].toString());
}

// TO
if ((a = m.getRecipients(Message.RecipientType.TO)) != null) {
for (int j = 0; j < a.length; j++)
System.out.println("TO: " + a[j].toString());
}

// SUBJECT
System.out.println("SUBJECT: " + m.getSubject());

// DATE
Date d = m.getSentDate();
System.out.println("SendDate: " +
(d != null ? d.toString() : "UNKNOWN"));

// SIZE
System.out.println("Size: " + m.getSize());

// FLAGS:
Flags flags = m.getFlags();
StringBuffer sb = new StringBuffer();
Flags.Flag[] sf = flags.getSystemFlags(); // get the system flags

boolean first = true;
for (int i = 0; i < sf.length; i++) {
String s;
Flags.Flag f = sf[i];
if (f == Flags.Flag.ANSWERED)
s = "\\Answered";
else if (f == Flags.Flag.DELETED)
s = "\\Deleted";
else if (f == Flags.Flag.DRAFT)
s = "\\Draft";
else if (f == Flags.Flag.FLAGGED)
s = "\\Flagged";
else if (f == Flags.Flag.RECENT)
s = "\\Recent";
else if (f == Flags.Flag.SEEN)
s = "\\Seen";
else
continue; // skip it
if (first)
first = false;
else
sb.append(' ');
sb.append(s);
}

String[] uf = flags.getUserFlags(); // get the user flag strings
for (int i = 0; i < uf.length; i++) {
if (first)
first = false;
else
sb.append(' ');
sb.append(uf[i]);
}
System.out.println("FLAGS = " + sb.toString());

// X-MAILER
String[] hdrs = m.getHeader("X-Mailer");
if (hdrs != null)
System.out.println("X-Mailer: " + hdrs[0]);
else
System.out.println("X-Mailer NOT available");
}
}
报这个错!应该怎么解决This Provider or this folder does not support UIDs
...全文
149 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
凉凉二点凉 2007-07-17
  • 打赏
  • 举报
回复
来人啊
1:强大的用户管理面版
2:注册简便,发布信息管理信息等都相当简单
3:用户积分制度
4:加入 4 个非常实用的道具
标题变色道具 (改变标题颜色) 信息置顶道具 (能使发布信息置顶,使用个数越多,位置越高) 内容贴图道具 (可以发和信息相关的图片) 通过验证道具 (可不通过管理员审核,直接发布) 5:采用虚拟货币制度,可以在线购买虚拟货币,支持1st-pay接口(后台可以设置) 6:强大的后台分类管理,可以对某分类控制在前台是否显示,并可控制二级分类显示的个数 7:分类采用直接生成HTML页面,加速页面下载。 8:在没有使用道具的情况下,发布的所有信息将通过管理员认证后才可以显示! 9:用户管理发布的信息时,可以对某信息增加道具,发布后可以随时使用已有的道具! 10:增加用户投诉和站务留言功能,只有管理员回复信息后才可以显示到用户界面里! 11:对单一信息有加入收藏、给用户发送邮件、直接回复 12:支持自动缩略图,以次来控制版面,用户点击后放大显示 13:用户如果有足够的“虚拟货币”可以在线购买四大道具,购买后可以进行道具--》虚拟货币、积分--》虚拟货币的转换 14:注册新用户时产生动态密码后通过邮件通知注册用户。 15:后台可以修改在线支付的用户名1st-pay 16:邮件系统管理(如果SMTP服务器不稳定可以适时修改) 17:注册用户管理(用户密码、用户积分、用户虚拟货币、用户道具) 18:生成分类页面(在更改了分类后运行该功能即可在首页显示修改的效果)
一套现成的分类信息网站发布系统,可为网民提供招租、招聘、求购、求租、搬迁、运输、二手交易、招生培训、婚介交友等各类信息的发布和查询,拥有功能强大的信息搜索引擎,适合于做城市门户网站的综合信息发布、查询平台 v2.6更新: 1:修改之前的一些bug. 2: 分为无需注册的免费发布和VIP注册发布/管理两个系统功能 3:注册简便,发布信息管理信息等都相当简单 4:采用虚拟货币制度,可以在线购买虚拟货币,支QPAY支付平台接口(设置方法见下) 5:强大的后台分类管理,可以对某分类控制在前台是否显示,并可控制二级分类显示的个数 6:分类采用直接生成HTML页面,加速页面下载。 7:用户管理发布的信息时,可以对某信息增加道具,发布后可以随时使用已有的道具! 8:增加用户投诉和站务留言功能,只有管理员回复信息后才可以显示到用户界面里! 9:对单一信息有加入收藏、给用户发送邮件、直接回复 10:支持自动缩略图,以次来控制版面,用户点击后放大显示 11:用户如果有足够的“虚拟货币”可以在线购买四大道具,购买后可以进行道具--》虚拟货币、积分--》虚拟货币的转换 12:注册新用户时自己设定密码并通过邮件通知注册用户。 13:注册用户管理(用户密码、用户积分、用户虚拟货币、用户道具) 后台地址http://localhost/index.asp 管理员: admin 密码: admin888

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧