java imap 邮件接收

package com.ckn.web.main;

import java.util.Properties;

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.IMAPMessage;

public class SearchMail {
    
    public static void main(String[] args) throws Exception{
        //0、各种连接配置
        Properties props=new Properties();
        props.setProperty("mail.store.protocol", "imap");
        props.setProperty("mail.imap.host", "imap.163.com");
        props.setProperty("mail.imap.port", "143");
        
        //1、创建Session实例对象
        Session session=Session.getInstance(props);
        
        //2、创建IMAP协议的Store对象
        Store imapStore=session.getStore("imap");
        
        //3、连接邮件服务器
        imapStore.connect("[email protected]", "123456FXA");
        
        //4、获得收件箱
        Folder folder=imapStore.getFolder("INBOX");
        
        //5、以读写的方式打开收件箱
        folder.open(Folder.READ_WRITE);
        
        //6、获得收件箱的邮件列表
        Message[] messages=folder.getMessages();
        
        //7、收件箱的状态//
        System.out.println("收件箱中共"+messages.length+"封邮件!");
        System.out.println("收件箱中共"+folder.getUnreadMessageCount()+"封未读邮件!");
        System.out.println("收件箱中共"+folder.getNewMessageCount()+"封新邮件!");
        System.out.println("收件箱中共"+folder.getDeletedMessageCount()+"封已删除邮件!");
        
        //8、解析邮件
        System.out.println("***************");
        for(Message message:messages){
            IMAPMessage imapMsg=(IMAPMessage) message;
            String subject=MimeUtility.decodeText(imapMsg.getSubject());
            imapMsg.setFlag(Flag.SEEN, true); //设置已读标志  第二个参数如果设置为true,则将修改反馈给服务器。false则不反馈给服务器
            
            System.out.println("当前邮件 标题:"+subject);

            //imapMsg.writeTo(System.out);
            //获取邮件外包装
            //Multipart multipart=(Multipart) message.getContent();
            Object wrapContent=message.getContent();
            if(wrapContent instanceof Multipart){
                System.out.println("包含附件");
            }else{
                System.out.println("纯文本邮件");
                System.out.println(message.getContent());
            }


        }
        
        //9、关闭资源
        folder.close(false);
        imapStore.close();
    }

}

你可能感兴趣的:(imap)