zoukankan      html  css  js  c++  java
  • java mail 接受QQ邮箱未读的邮件

    案例代码如下

    //创建属性对象
            Properties p = new Properties();
            p.put("mail.imap.auth.login.disable", "true");//身份验证
            p.put("mail.imap.host", "imap.qq.com");//主机
            p.put("mail.store.protocol", "imap");//协议
            p.put("mail.imap.port", "993");//端口
            //qq邮箱需要ssl加密
            p.put("mail.smtp.socketFactory.port","993");
            p.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
            
            //创建会话对象
            Session session = Session.getInstance(p);
            //存储对象
            Store store = session.getStore("imap");
            //链接
            store.connect("2960036795@qq.com", "lylglvicofzodghf");
            
            //创建目录对象
            Folder folder = store.getFolder("Inbox");
            //打开模式:只读
            folder.open(Folder.READ_ONLY);
            
            //获取消息,数组
            Message[] ms = folder.getMessages();
            
            //预提取对象
            FetchProfile fp = new FetchProfile();
            //属性
            fp.add(FetchProfile.Item.ENVELOPE); 
            //内容
            fp.add(FetchProfile.Item.CONTENT_INFO);
            //标志属性
            fp.add(FetchProfile.Item.FLAGS);
            //x-mailer属性
            fp.add("x-mailer");
            
            //提取
            folder.fetch(ms, fp);
            
            //遍历
            for(Message m : ms) {
                String title = m.getSubject(); //获取邮件的标题
                int size = m.getSize(); //获取邮件的大小
                String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(m.getSentDate());//获取邮件的接受时间
                
                System.out.println("标题:"+title);
                System.out.println("大小:"+size);
                System.out.println("接受时间:"+date);
                
                Object obj = m.getContent();//获取邮件内容
                //内容类型判断
                //村文本内容
                if(m.isMimeType("text/plain") || m.isMimeType("text/html")) {
                    System.out.println("内容:"+obj);
                }
                //多个组件内容
                if(m.isMimeType("multipart/*")) {
                    //强制转为多个组件类型
                    Multipart part = (Multipart) obj;
                    //遍历每个组件
                    for(int i=0;i<part.getCount();i++) {
                        //每个组件内容
                        BodyPart body = part.getBodyPart(i);
                        //判断组件内容的类型
                        //纯文字
                        if(body.isMimeType("text/plain") || body.isMimeType("text/html")) {
                            System.out.println("内容:"+body.getContent());
                        }
                        //附件
                        if(body.isMimeType("application/octet-stream")) {
                            String fileName = body.getFileName(); //获取附件的文件名
                            fileName = MimeUtility.decodeText(fileName);//解码
                            
                            //存取当前附件
                            //使用输入输出流存储
                            InputStream is = body.getInputStream();
                            OutputStream os = new FileOutputStream("F:\yujun\linshi\"+fileName);
                            byte[] b = new byte[1024];
                            int len = 0;
                            while((len=is.read(b)) != -1) {
                                os.write(b, 0, len);
                            }
                            is.close();
                            os.close();
                        }
                    }
                }
            }

     相关学习资料:https://www.cnblogs.com/ysocean/p/7666061.html

  • 相关阅读:
    Eureka 集群搭建
    Eureka 基本使用操作
    服务治理 Eureka基础认识
    docker-compose命令不存在(docker-compose not found)
    用来存放下一条将要执行的指令地址的寄存器是
    从左线性文法构造有限自动机时,通常自动机状态个数比文法非终结符号数多
    现代多数实用编译程序所产生的目标代码都是一种可重定位的指令代码,在运行前必须借助于一个
    js正则表达式验证端口范围(0-65535)
    IDEA新建Spring配置文件的方法
    webpack-dev-server config.js Cannot find module
  • 原文地址:https://www.cnblogs.com/chyxOne/p/9680423.html
Copyright © 2011-2022 走看看