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

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

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();
    }

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿文_ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值