java 获取邮件数据
来源:互联网 发布:python 前端框架 编辑:程序博客网 时间:2024/06/16 11:25
有时候我们需要去读取指定邮箱里面的邮件数据,这就需要使用到获取邮件的方法了
public static void main(String args[]) throws MessagingException, IOException, javax.mail.MessagingException { Properties props = new Properties(); props.setProperty("mail.store.protocol", "pop3"); props.setProperty("mail.pop3.host", "pop.163.com"); Session session = Session.getDefaultInstance(props); Store store = session.getStore("pop3"); store.connect("******", "******");//邮箱帐号,邮箱的pop3/imap密码不是邮箱的登录密码 Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_WRITE); // 全部邮件数 int messageCount = folder.getMessageCount(); System.out.println("邮件总数:"+messageCount); Message[] messages = folder.getMessages(); for (int i = 0; i < messages.length; i++) { MimeMessage message = (MimeMessage) messages[i]; // 删除邮件 // message.setFlag(Flags.Flag.DELETED, true); // 标记为已读 // message.setFlag(Flags.Flag.SEEN, true); //pop3没有判断邮件是否为已读的功能,要使用Imap才可以 /*Flags flags = message.getFlags(); if (flags.contains(Flags.Flag.SEEN)) System.out.println("这是一封已读邮件"); else { System.out.println("未读邮件"); message.setFlag(Flags.Flag.SEEN, true); }*/ if(message.getFrom() == null) continue; javax.mail.Address addr = message.getFrom()[0]; if(addr == null) continue; String str_addr = addr.toString(); System.out.println("发件邮箱:" + str_addr.substring(str_addr.indexOf("<")+1, str_addr.indexOf(">"))); System.out.println("内容:" + message.getContent()); System.out.println("邮件ID:" + message.getMessageID()); //解析邮件内容 Object content = message.getContent(); if (content instanceof MimeMultipart) { MimeMultipart multipart = (MimeMultipart) content; parseMultipart(multipart); } System.out .println("========================================================"); System.out .println("========================================================"); } folder.close(true); store.close(); }
public static void parseMultipart(Multipart multipart) throws MessagingException, IOException, javax.mail.MessagingException { int count = multipart.getCount(); String html = null; for (int idx=0;idx<count;idx++) { BodyPart bodyPart = multipart.getBodyPart(idx); if (bodyPart.isMimeType("text/plain")) { html = (String) bodyPart.getContent(); } else if(bodyPart.isMimeType("text/html")) { // System.out.println("html..................."+bodyPart.getContent()); html = (String) bodyPart.getContent(); } else if(bodyPart.isMimeType("multipart/*")) { Multipart mpart = (Multipart)bodyPart.getContent(); parseMultipart(mpart); } else if (bodyPart.isMimeType("application/octet-stream")) { System.out.println("application/octet-stream..."); String disposition = bodyPart.getDisposition(); System.out.println(disposition); if (disposition.equalsIgnoreCase(BodyPart.ATTACHMENT)) { String fileName = bodyPart.getFileName(); InputStream is = bodyPart.getInputStream(); copy(is, new FileOutputStream("D:\\"+fileName)); } } } if(html == null) return ; Document doc = Jsoup.parse(html); }
通过parseMultipart解析函数也能看出来,我们获取到的邮件内容是一个html页面,至于还需要怎么去获取想要的数据、信息,这就用自己的方法咯
1 0
- java 获取邮件数据
- Java获取收件箱邮件
- 重金或积分求java 获取exchange2013邮件服务器联系人和日历数据 代码
- java 在服务器上获取所有邮件
- java获取Exchange未读邮件
- java获取天气预报数据
- JAVA发送邮件和获取客户端真实ip地址
- java获取db元数据
- java从控制台获取数据
- Java获取DB元数据
- java--获取数据库元数据
- Java 获取mysql中数据
- java 获取前一天的数据
- java根据url获取数据
- 利用java获取excle数据
- Java 获取SAP的数据
- java 定时发送邮件以及数据导出excel作为附件
- java邮件
- 【Linux】解决ubuntu14.04下升级系统之后搜狗输入法不能用的问题
- LeetCode刷题【Array】 Search in Rotated Sorted Array II
- FIFO IP核在DSP与ARM之间做数据缓存
- 自定义校验器实例
- LintCode 跳跃游戏 解答
- java 获取邮件数据
- Objective-C如何自己实现一个基于数组下标的属性访问模式
- Python 连接 百度语音 服务
- 常用数据库连接池的配置
- Robot Framework安装部署详细教程(Windows7 64位)
- MongoDB常用命令以及数据类型
- RTP协议分析
- android.content.res.Resources$NotFoundException: String resource ID
- thinkphp目录结构