案例代码如下
//创建属性对象 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(); } } } }