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

本文提供了一个使用Java读取POP3邮箱中邮件的基本示例。通过创建会话、连接到邮箱、打开文件夹并获取消息,展示了如何显示邮件的发件人和主题。此外,还介绍了如何进一步读取邮件内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 为读邮件,您获取一个会话,获取并连接一个用于邮箱的适宜的存储(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;
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值