java获取阿里邮箱收件箱、发件箱、草稿箱、已删除邮件、垃圾邮件

java 同时被 2 个专栏收录
98 篇文章 0 订阅
1 篇文章 0 订阅

通过下面两句代码即可获得该邮箱下所有文件夹名称

Folder defaultFolder = store.getDefaultFolder();
Folder[] allFolder = defaultFolder.list();

然后通过下面代码获取对应的文件

  IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX"); // 收件箱
  IMAPFolder sendFolder = (IMAPFolder) store.getFolder("已发送"); // 发件箱
  IMAPFolder folder = (IMAPFolder) store.getFolder("草稿"); // 草稿箱
  IMAPFolder sendFolder = (IMAPFolder) store.getFolder("垃圾邮件"); // 垃圾邮件箱
  IMAPFolder sendFolder = (IMAPFolder) store.getFolder("已删除邮件"); // 已删除邮件

具体代码如下

传入邮箱账号和密码即可

具体业务怎么要求,再怎么实现即可

//imap
    public static void showPostMasterEmail(String user,String password) throws Exception{
        Properties prop = System.getProperties();
        prop.put("mail.store.protocol", "imap");
        prop.put("mail.imap.host", "imap.mxhichina.com");

        Session session = Session.getInstance(prop);

        int total = 0;
        IMAPStore store = (IMAPStore) session.getStore("imap"); // 使用imap会话机制,连接服务器
        store.connect(user, password);
        IMAPFolder folder = (IMAPFolder) store.getFolder("INBOX"); // 收件箱

        Folder defaultFolder = store.getDefaultFolder();

        Folder[] allFolder = defaultFolder.list();
        IMAPFolder sendFolder = (IMAPFolder) store.getFolder("已发送"); // 发件箱

        sendFolder.open(Folder.READ_WRITE);
        Message[] messages1 = sendFolder.getMessages();
        for(Message message : messages1){
            log.info("主题:" + message.getSubject());
        }
        folder.open(Folder.READ_WRITE);
        // 获取总邮件数
        total = folder.getMessageCount();
        log.info("-----------------共有邮件:" + total
                + " 封--------------");
        // 得到收件箱文件夹信息,获取邮件列表
        log.info("未读邮件数:" + folder.getUnreadMessageCount());

        Message[] messages = folder.getMessages(folder.getMessageCount()-folder.getUnreadMessageCount()+1,folder.getMessageCount());
        int messageNumber = 0;
        for (Message message : messages) {
            log.info("发送时间:" + message.getSentDate());
            log.info("主题:" + message.getSubject());
            log.info("内容:" + message.getContent());
            Flags flags = message.getFlags();
            String subject = message.getSubject();
            if(subject!= null && subject.indexOf("postmaster@net.cn")>-1){
                JOptionPane.showMessageDialog(new JFrame().getContentPane(),
                        "有一封退信", "来自" + user + ",请登录邮箱查看!!!", JOptionPane.INFORMATION_MESSAGE);
            }else if (flags.contains(Flags.Flag.SEEN)){
                log.info("这是一封已读邮件");
            }else {
                message.setFlag(Flags.Flag.SEEN, true);
                log.info("未读邮件");
            }
            log.info("========================================================");
            log.info("========================================================");
            //每封邮件都有一个MessageNumber,可以通过邮件的MessageNumber在收件箱里面取得该邮件
            messageNumber = message.getMessageNumber();
        }
        Message message = folder.getMessage(messageNumber);
        log.info(message.getContent()+message.getContentType());
        // 释放资源
        if (folder != null)
            folder.close(true);
        if (store != null)
            store.close();
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值