You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取收件邮件的Message ID以获取邮件内容(已实现消息计数监听)

获取收件邮件的Message ID(基于JavaMail监听逻辑)

嘿,刚好可以在你现有的MessageCountListener的messagesAdded方法里直接拿到新增邮件的Message ID!JavaMail的MessageCountEvent提供了获取新增邮件对象的入口,咱们直接利用它就行。

修改后的代码示例

folder.addMessageCountListener(new MessageCountListener() {
    public void messagesAdded(MessageCountEvent e) {
        System.out.println("Message Count Event Fired");
        // 获取触发事件时新增的所有邮件对象
        Message[] newMessages = e.getMessages();
        for (Message msg : newMessages) {
            try {
                // 获取并输出该邮件的Message ID
                String messageId = msg.getMessageID();
                System.out.println("新增邮件的Message ID: " + messageId);
                // 后续如果要读取邮件内容,直接在这里调用msg.getContent()即可
            } catch (MessagingException | IOException ex) {
                // 捕获邮件操作或IO异常,避免程序崩溃
                ex.printStackTrace();
            }
        }
    }
    public void messagesRemoved(MessageCountEvent e) {
        System.out.println("Message Removed Event fired");
    }
});

关键注意点

  • e.getMessages():这是获取新增邮件的核心方法,会返回本次事件中所有新增的邮件对象数组
  • msg.getMessageID():每个Message对象自带的方法,直接返回邮件的唯一标识Message ID,必须捕获MessagingException异常
  • 确保你的folder对象已经以读权限/读写权限打开(比如folder.open(Folder.READ_ONLY)),否则会触发权限相关异常

内容的提问来源于stack exchange,提问作者Zohaib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:44:24