做个数据库,保存受到的邮件的”MESSAGE-ID“。
以后每次受POP3邮件都查看数据库是否有“MESSAGE-ID”,有则不是新的,没有就是旧的。
保存邮件建议用BLOB
以后每次受POP3邮件都查看数据库是否有“MESSAGE-ID”,有则不是新的,没有就是旧的。
保存邮件建议用BLOB
解决方案 »
- 怎样测试文件关闭的时候发生IOException错误
- 请问Java什么方法可以设置窗口的透明度?
- JAVA中堆栈的应用,唉,我真是不会了,救命啊,做不出今晚回不去家了
- 数据库系统的客户端和服务器问题
- 大家有空讨论一道常见的考题
- 各位大侠
- Vector 遍历问题,这有错吗(急分手,在线)
- 我现在想调试Wap push message,需要有一个模拟PPG的一个环境,急
- 用了plug,为什么app运行得还是这么慢,或者根本就不能运行?高分求救!
- 本人打算考SCJP,请问该哪些书或资料,考试难不难.
- 存储过程问题?
- 请问:tomcat服务器设置中在那里(我的操作系统是win2000)设置set tomcat_home=c:\jakarta-tomcat?
2. 并不是每一封邮件都有 Message-ID 的。通用的做法是,先取得所有邮件的 UIDL 列表,然后保存这些 UIDL 列表,下次登陆时再从 POP SERVER 上把这个 UIDL 列表取出来与保存在本地的对照,如果发现新的 UIDL 时,再根据这些新的 UIDL 取得那些邮件。
有没有办法把mail从服务器上取下来,这样下次每次收到的信都是新邮件了,呵呵
fp.add(UIDFolder.FetchProfileItem.UID);
//UIDFolder.FetchProfileItem.ENVELOPE;
this.msgs = folder.getMessages();
folder.fetch(msgs, fp); public String getUIDArr()[]{
ErrMsg = null;
if (this.messageCount <=0
|| !(this.folder instanceof POP3Folder))
return null;
if (this.uidArr != null) return this.uidArr;
POP3Folder pf = (POP3Folder)this.folder;
String[] rtnVal = new String[this.messageCount];
try{
for (int i=0;i<this.messageCount;i++){
rtnVal[i] = pf.getUID(msgs[i]);
if (rtnVal[i] == null) return null;
}
}catch(MessagingException e){
this.ErrMsg = "Error on getting UID list";
return null;
}
this.uidArr = rtnVal;
return rtnVal;
}
有些类是 sun 封装了的,并不提倡让你直接使用的,如果你要找的话,可以在某个 jar 里找到相应的 class,因为以后可能有改动,你看到的只是统一的结口,比如说 Folder。
这是偶很早以前代码,有好久没有看过了,你可以改进一下。