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協議session

相關文章
相關標籤/搜索