用javamail如何获得邮箱中最新的邮件 看看 javamail 的 monitor.java 代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不成monitor.java用的是imap协议,现在的邮箱好像都用pop3了如果用pop3得话,那个什麽messagecountchange事件根本触发不了 肯定给肯定给,当然,必须得是正确答案:)绝不食言,不信你看这个http://www.csdn.net/expert/topic/328/328421.shtm 用下面的方法得到每次的 uidl 列表,然后再比较有没有新的 uidl,如果有新的话,则那一封是新邮件(注意处理异常的情况)。Session session = null;Store store = null;Folder folder = null;POP3Folder pf = null;String[] uidlArr;Message[] msgs = null;FetchProfile fp = null;// Get a Session objectsession = Session.getDefaultInstance(props, null); // Get a Store objectstore = session.getStore(_protocol); // Connectstore.connect(_host, _port, _user, _password);// Open the Folderfolder = store.getDefaultFolder();folder = folder.getFolder("Inbox");try { folder.open(Folder.READ_WRITE);} catch (MessagingException ex) { folder.open(Folder.READ_ONLY);}fp = new FetchProfile();fp.add(UIDFolder.FetchProfileItem.UID);msgs = folder.getMessages();messageCount = msgs.length;folder.fetch(msgs, fp);pf = (POP3Folder)this.folder;uidlArr = new String[messageCount];for (int i=0;i<messageCount;i++){ uidlArr[i] = pf.getUID(msgs[i]); if (uidlArr[i] == null) return; // error! can't get the uidl array, handle this case} 呵呵,随便从新邮件里抽一封给你的客户,然后告诉它这一封是最新的就是了,反正他那些新邮件也没看过。或者比较这些邮件中的 Date 字段(先把这些邮件的 Header 全 Download 下来)。 POP3Folder 是什麽呀,是你自己写的吗 是这个: com.sun.mail.pop3.POP3Folder 求助帖,关于线程,socket,sigar 请问和数据库保持连接会占用什么资源 Java如何读取如下所示文本 data.txt 中数据? 怎么按格式读文本啊?! 关于Hibernate问题,高手进来谈下看法```分不够我加 真郁闷 从文本文件导入数据到数据库的问题 设定完tomcat的环境变量后,再怎么用java从环境变量中读取它?请求帮组!急 怎样截取屏幕的一个区域 请问在JAVA打印程序设计中应该怎样设置页边距呢? double类型的转换,在线等候 谁知道用java怎么做dll SCJP 模拟题一道
monitor.java用的是imap协议,现在的邮箱好像都用pop3了
如果用pop3得话,那个什麽messagecountchange事件根本触发不了
绝不食言,不信你看这个
http://www.csdn.net/expert/topic/328/328421.shtm
Store store = null;
Folder folder = null;
POP3Folder pf = null;
String[] uidlArr;
Message[] msgs = null;
FetchProfile fp = null;// Get a Session object
session = Session.getDefaultInstance(props, null);
// Get a Store object
store = session.getStore(_protocol); // Connect
store.connect(_host, _port, _user, _password);// Open the Folder
folder = store.getDefaultFolder();
folder = folder.getFolder("Inbox");try {
folder.open(Folder.READ_WRITE);
} catch (MessagingException ex) {
folder.open(Folder.READ_ONLY);
}fp = new FetchProfile();
fp.add(UIDFolder.FetchProfileItem.UID);msgs = folder.getMessages();
messageCount = msgs.length;
folder.fetch(msgs, fp);pf = (POP3Folder)this.folder;
uidlArr = new String[messageCount];for (int i=0;i<messageCount;i++){
uidlArr[i] = pf.getUID(msgs[i]);
if (uidlArr[i] == null) return; // error! can't get the uidl array, handle this case
}
或者比较这些邮件中的 Date 字段(先把这些邮件的 Header 全 Download 下来)。