北天软件工作室
北天软件集网站建设、网站开发、软件开发、网站优化SEO、网站宣传、网站开发成一体的网络公司。北天软件是专业的网站建设、网站开发、设计、制作和网站国际推广、搜索引擎推广的网络公司。口号:考虑企业所需,实现企业所想。JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!   旧版java技术网 | 设为首页 | 文章搜索 | RSS订阅地图
免费使用JavaCMS自助建站系统
  文章搜索:   
初学者园地  javascript  java技术  .Net技术 XML/WebService  数据库技术  web2.0技术  设计模式  设计框架  SEO技术  综合知识
您现在的位置是: 北天软件门户网>>java技术>>详细信息
用javamail写的解析MimeMessage的程序
自从上次在论坛发表了用JavaMail来发送邮件的程序以后,一直忙于学校里面的事情,没有时间静下心来写接收邮件的程序,现在学校里的事情终于忙完了,可以静下心里做自己喜欢做的事情了,这种感觉真的很好! 对我自己而言,刚开始在用JavaMail来编写收邮件的程序时最重要和最难的要数解析附件和邮件正文的部分,因为Mime类型实在是太多了!下面的这段代码是我自己学习JavaMail的一段体会,供大家来参考(请高手指教,有什么更好的办法,请回复此文章),具体代码如下: ------------------------------------------------------------------------------- package coffeecatwebmail; import java.io.*; import java.text.*; import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class PraseMimeMessage{ private MimeMessage mimeMessage = null; private String saveAttachPath = ""; //附件下载后的存放目录 private StringBuffer bodytext = new StringBuffer(); //存放邮件内容的StringBuffer对象 private String dateformat = "yy-MM-dd HH:mm"; //默认的日前显示格式 /** * 构造函数,初始化一个MimeMessage对象 */ public PraseMimeMessage(){} public PraseMimeMessage(MimeMessage mimeMessage){ this.mimeMessage = mimeMessage; System.out.println("create a PraseMimeMessage object........"); } public void setMimeMessage(MimeMessage mimeMessage){ this.mimeMessage = mimeMessage; } /** * 获得发件人的地址和姓名 */ public String getFrom()throws Exception{ InternetAddress address[] = (InternetAddress[])mimeMessage.getFrom(); String from = address[0].getAddress(); if(from == null) from=""; String personal = address[0].getPersonal(); if(personal == null) personal=""; String fromaddr = personal+"<"+from+">"; return fromaddr; } /** * 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同 * "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址 */ public String getMailAddress(String type)throws Exception{ String mailaddr = ""; String addtype = type.toUpperCase(); InternetAddress []address = null; if(addtype.equals("TO") || addtype.equals("CC") ||addtype.equals("BCC")){ if(addtype.equals("TO")){ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.TO); }else if(addtype.equals("CC")){ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.CC); }else{ address = (InternetAddress[])mimeMessage.getRecipients(Message.RecipientType.BCC); } if(address != null){ for(int i=0;i"; mailaddr+=","+compositeto; } mailaddr=mailaddr.substring(1); } }else{ throw new Exception("Error emailaddr type!"); } return mailaddr; } /** * 获得邮件主题 */ public String getSubject()throws MessagingException{ String subject = ""; try{ subject = MimeUtility.decodeText(mimeMessage.getSubject()); if(subject == null) subject=""; }catch(Exception exce){ } return subject; } /** * 获得邮件发送日期 */ public String getSentDate()throws Exception{ Date sentdate = mimeMessage.getSentDate(); SimpleDateFormat format = new SimpleDateFormat(dateformat); return format.format(sentdate); } /** * 获得邮件正文内容 */ public String getBodyText(){ return bodytext.toString(); } /** * 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件 * 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析 */ public void getMailContent(Part part)throws Exception{ String contenttype = part.getContentType(); int nameindex = contenttype.indexOf("name"); boolean conname =false; if(nameindex != -1) conname=true; System.out.println("CONTENTTYPE: "+contenttype); if(part.isMimeType("text/plain") && !conname){ bodytext.append((String)part.getContent()); }else if(part.isMimeType("text/html") && !conname){ bodytext.append((String)part.getContent()); }else if(part.isMimeType("multipart/*")){ Multipart multipart = (Multipart)part.getContent(); int counts = multipart.getCount(); for(int i=0;i
关闭窗口 】   【 返回首页
推荐文章
· JavaMail常见问题之...
· JavaMail应用:安装和...
· JDBC优化策略总结
· 十大开源SQL客户端 ...
· MySQL 5数据库连接超...
· Java调用SQL Server...
· 简介:MySQL数据库的...
· Sun和Java Swing 2.0...
· JComponentPack 3.0 ...
· Swing界面设计工具的...
· 高级Swing组件makeove...
· 反射在Java Swing编...
· AjaxSwing 3.0发布 ...
· 系统配置文件动态设...
· Java小技巧:关于Cooki...
· 解决JSP开发Web程序...
· Java技巧:实例讲解Ser...
· J2EE搜索平台:DBsight...
· 开发J2EE应用应遵循...
· JSF:Java中面向Web开...
北天软件工作室 粤ICP备06079815号 版权所有©2006-2008
精彩出品 JavaCMS自助建站 (C)2006-2008 www.it3838.com limited.all rights reserved.
Powered by JavaCMS V2.6.0