java mail 读取邮件列表,

        // 准备连接服务器的会话信息
        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imap");
        props.setProperty("mail.imap.host", "imap.163.com");
        props.setProperty("mail.imap.port", "143");

        // 创建Session实例对象
        Session session = Session.getInstance(props);

        // 创建IMAP协议的Store对象
        Store store = session.getStore("imap");

        // 连接邮件服务器
        store.connect("186*******", "111111");

        // 获得收件箱
        Folder folder = store.getFolder("INBOX");
        // 以读写模式打开收件箱
        folder.open(Folder.READ_WRITE);

        // 获得收件箱的邮件列表
        Message[] messages = folder.getMessages();

        // 打印不同状态的邮件数量
        System.out.println("收件箱中共" + messages.length + "封邮件!");
        System.out.println("收件箱中共" + folder.getUnreadMessageCount() + "封未读邮件!");
        System.out.println("收件箱中共" + folder.getNewMessageCount() + "封新邮件!");
        System.out.println("收件箱中共" + folder.getDeletedMessageCount() + "封已删除邮件!");

        System.out.println("------------------------开始解析邮件----------------------------------");

        // 解析邮件
        for (Message message : messages) {
            IMAPMessage msg = (IMAPMessage) message;
            msg.setFlag(Flags.Flag.SEEN, true);
//            String subject = MimeUtility.decodeText(msg.getSubject());
//            System.out.println("[" + subject + "]未读,是否需要阅读此邮件(yes/no)?");
//            BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
//            String answer = reader.readLine();   //www.2cto.com
//            if ("yes".equalsIgnoreCase(answer)) {
////                POP3ReceiveMailTest.parseMessage(msg);  // 解析邮件
//                // 第二个参数如果设置为true,则将修改反馈给服务器。false则不反馈给服务器
//                msg.setFlag(Flags.Flag.SEEN, true);   //设置已读标志
//            }
        }

        // 关闭资源
        folder.close(false);
        store.close();

pop3是不可以更改邮件状态的,

所以改用imap协议

posted on 2016-09-26 15:45  lvlv岁月流逝  阅读(1814)  评论(0编辑  收藏  举报

导航