JAVAMail定時獲取未讀郵件數和郵件總數


最近OA集成郵箱系統,需要將郵箱的未讀郵件數和郵件總數讀取出來,下面記錄一下。

不多說了,直接上代碼了:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;

import javax.mail.Flags.Flag;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.internet.MimeUtility;

import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPMessage;

public class Main {

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                redMail();
            }
        }, 1000,1000*60);//延遲1000毫秒開始第一次執行,60*1000毫秒執行一次

    }

    public static void redMail() {
        System.out.println("Hello World!");
        // 准備連接服務器的會話信息
        Properties props = new Properties();
        props.setProperty("mail.store.protocol", "imap");
        props.setProperty("mail.imap.host", "imap.126.com");
        props.setProperty("mail.imap.port", "143");//根據郵件服務器情況設定
        //props.setProperty("mail.imap.starttls.enable", "true");

        // 創建Session實例對象
        Session session = Session.getInstance(props);
        try {
            // 創建IMAP協議的Store對象
            Store store = session.getStore("imap");

            // 連接郵件服務器
            store.connect("imap.126.com","XXX@126.com", "XXX");
            // 獲得收件箱
            Folder folder = (IMAPFolder)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() + "封已刪除郵件!");
            folder.close(false);
            store.close();
        }catch (Exception  e){
            System.out.println("testEx, catch exception"+e.getStackTrace());
            //throw e;
        }
}
}

  

最后結果:

JAVAMail功能強大,可以讀取並解析郵件。詳細API:JAVAMail API


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM