• java实现QQ邮箱读取


    下载mail-1.4.7架包,把架包导入项目

    public static void main(String[] args) throws MessagingException, IOException {
            
            //创建属性对象
            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("imap.qq.com","1156380111@qq.com","vesqbmmaicgdibfb");
            
            
            //创建目录对象
            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:\lishi"+fileName);
                            byte[] b = new byte[1024];
                            int len = 0;
                            while((len=is.read(b)) != -1) {
                                os.write(b, 0, len);
                            }
                            is.close();
                            os.close();
                        }
                    }
                }
            }
        }
  • 相关阅读:
    charindex代替like并非"更快更全面"
    SQLServer2005中的几个统计技巧
    SQLServer获取Excel中所有Sheet
    SQLServer2005的查询独占模拟
    SSAS事实表和维度表数据类型必须一致
    monodevelop 出现has line endings which differ from the policy settings.的解决方法
    mono for android Main.axml
    vs2010 错误提示框:文件加载 使用 简体中文(GB2312
    在Virtual Machine上运行Hello China的方法和工具
    embed基本语法
  • 原文地址:https://www.cnblogs.com/luoxiaodou/p/9682935.html
Copyright © 2020-2023  润新知