JavaMail基础知识3-JavaMail API使用之消息提取

 为读邮件,您获取一个会话,获取并连接一个用于邮箱的适宜的存储(store),打开适宜的文件夹,然后获取您的消息。同样,切记完成后关闭连接。

String host = ...;
String username = ...;
String password = ...;

// Create empty properties
Properties props = new Properties();

// Get session
Session session = Session.getDefaultInstance(props, null);

// Get the store
Store store = session.getStore("pop3");
store.connect(host, username, password);

// Get folder
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);

// Get directory
Message message[] = folder.getMessages();

for (int i=0, n=message.length; i<n; i++) {
 System.out.println(i + ": " + message[i].getFrom()[0] + "/t" + message[i].getSubject());
}

// Close connection
folder.close(false);
store.close();


对每条消息做些什么由您决定。上面的代码块只是显示这些消息的发件人和主题。技术上讲,from 地址列表可能为空,而 getFrom()[0] 调用会抛出一个异常。

要显示全部信息,您可以在用户看完 from 和 subject 域之后给出提示,如用户有需要,就调用消息的 writeTo() 方法来实现。
BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
// Get directory
Message message[] = folder.getMessages();
for (int i=0, n=message.length; i<n; i++) {
 System.out.println(i + ": " + message[i].getFrom()[0] + "/t" + message[i].getSubject());
 System.out.println("Do you want to read message? [YES to read/QUIT to end]");
 String line = reader.readLine();
 if ("YES".equals(line)) {
  message[i].writeTo(System.out);
 } else if ("QUIT".equals(line)) {
  break;
 }
}

你可能感兴趣的:(api,properties,String,session,null,javamail)