📄 monitor.java
字号:
package ch08.section10;
import java.io.*;
import java.util.*;
import javax.activation.*;
import javax.mail.*;
import javax.mail.event.*;
public class monitor {
public static void main(String argv[]) {
String[] p = {
"10.198.0.11", "wei", "wei", "inbox", "2"};
System.out.println("\n邮件监控测试\n");
try {
Properties props = System.getProperties();
// 得到session对象
Session session = Session.getDefaultInstance(props, null);
// 得到Store对象
Store store = session.getStore("imap");
// 链接邮件服务器
store.connect(p[0], p[1], p[2]);
// 打开Folder
Folder folder = store.getFolder(p[3]);
if (folder == null || !folder.exists()) {
System.out.println("错误的folder");
System.exit(1);
}
folder.open(Folder.READ_WRITE);
// 使用 messageCountListener 监听新邮件
folder.addMessageCountListener(new MessageCountAdapter() {
public void messagesAdded(MessageCountEvent ev) {
Message[] msgs = ev.getMessages();
System.out.println("有 " + msgs.length +
" 条新消息");
//读取新邮件
for (int i = 0; i < msgs.length; i++) {
try {
DataHandler dh = msgs[i].getDataHandler();
InputStream is = dh.getInputStream();
int c;
while ( (c = is.read()) != -1) {
System.out.write(c);
}
}
catch (IOException ioex) {
ioex.printStackTrace();
}
catch (MessagingException mex) {
mex.printStackTrace();
}
}
}
});
// 每隔"p[4]" 毫秒检查一次邮件
int freq = Integer.parseInt(p[4]);
for (; ; ) {
Thread.sleep(freq);
folder.getMessageCount();
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -