网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > J2EE/J2ME
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JBOSSAOP学习笔记-AOP基本知识.
.在J2EE上部署Web服务(Web Servi.
.介绍J2ME可选包的概念.
.搭建OTA下载服务器.
.高可靠性移动应用程序-移动数据.
.JavaBean-XML组件轻松实现JavaBe.
.使用EJB3.0简化企业级Java开发一.
.为Spring Bean设置别名.
.J2ME中访问手机本地电话本.
.NetBeans的使用(1).
.新手入门篇:J2ME开发环境的安装.
.JBoss 文档(三) JBoss和JMS.
.velocity的几层窗户纸.
.JBOSS4.0 JDBC数据源配置大全(二).
.经典收藏:J2MEGame的开发笔记.
.M3GConverter使用手册.
.Java中的cookie管理方案(1)-与J2.
.JDBC3.0新特性.
.初学j2ee的人都会遇到这样的问题.
.Tomcat服务器下JSP页面中文问题及.

JavaMail快速入门-7

发表日期:2007-12-23



  请注意:你从session中得到一个POP3消息存储封装器,然后使用最初在命令行上键入的mail设置跟它连接。

  一旦连接成功,你就得到了一个默认文件夹的句柄,在这里使用的是INBOX文件夹,它保存了进来的消息。你可以打开这个只读的INBOX信箱,然后一个一个的读取消息。

  另外,你可能想知道是否你能够以写的方式打开这个INBOX信箱。如果你想为这些消息做标记或者从服务器上删除,你可以做得到。不过在我们的这个例子中,你只能查看消息。

  最后,在上面的代码中,你做到了当查看完毕后关闭文件夹以及消息存储,然后留下printMessage()方法来完成这个类的剩余部分。

  打印消息

  在这一部分,很有必要讨论前面提到的Javax.mail.Part接口。

  下面的代码让你明白怎样隐含地把消息转换为它的Part接口并且把它赋给messagePart变量。对于只有一部分的消息,你现在需要打印一些信息。

  假如调用messagePart.getContent()来生成一个Multipart实例,你知道你正在处理一个多部分消息;在这种情况下,你正在通过getBodyPart(0)来得到第一个多部分消息并且打印它。

  当然你还要知道是否你已经得到了这个消息本身,还是仅仅是消息正文的第一部份。只有当内容是普通文本或者Html时,你才可以打印该消息,这是通过一个InputStream来完成的。

/**

* "printMessage()" method to print a message.

*/

public static void printMessage(Message message)

{

 try

 {

  // Get the header information

  String from=((InternetAddress)message.getFrom()[0]).getPersonal();

  if (from==null) from=((InternetAddress)message.getFrom()[0])

   .getAddress();

   System.out.println("FROM: "+from);

   String subject=message.getSubject();

   System.out.println("SUBJECT: "+subject);

   // -- Get the message part (i.e. the message itself) --

   Part messagePart=message;

   Object content=messagePart.getContent();

   // -- or its first body part if it is a multipart message --

   if (content instanceof Multipart)

   {

    messagePart=((Multipart)content).getBodyPart(0);

    System.out.println("[ Multipart Message ]");

   }

   // -- Get the content type --

   String contentType=messagePart.getContentType();

   // -- If the content is plain text, we can print it --

   System.out.println("CONTENT:"+contentType);

   if (contentType.startsWith("text/plain") contentType.startsWith("text/html"))

   {

    InputStream is = messagePart.getInputStream();

    BufferedReader reader=new BufferedReader(new InputStreamReader(is));

               String thisLine=reader.readLine();

    while (thisLine!=null)

    {

     System.out.println(thisLine);

     thisLine=reader.readLine();

    }

   }

   System.out.println("-----------------------------");

  }

  catch (Exception ex)

  {

   ex.printStackTrace();

  }

 }

}

  为了简单起见,我假设消息本身或者消息正文的第一部份是可以打印的。对于真正的应用软件,可能你想要依次检查消息正文的每一部分,并且对每一部分采取相应的行动-打印或者是保存到磁盘,这取决于内容的类型。


  当你从消息存储中得到每个消息时,你实际上已经得到了一个轻量级的封装器。数据内容的获取是每申请一次就读取一次-这对于你只想下载消息头时很有用。

(出处:)


上一篇:JavaMail快速入门-2 人气:651
下一篇:JavaMail快速入门-6 人气:509
浏览全部J2EE/J2ME的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐