不仅仅可以发送普通文本
javax.mail.message(继承javax.mail.part接口)类中的settext(…)方法把消息内容赋给所提供的字符串,把mime设置为text/plain。
但是,你不仅仅可以发送普通文本,你还可以通过setdatehandler(…)方法发送其它类型的内容。在大多数情况下,你能通过采用“其它类型内容”来指定文件附件,比如word文档,但是有趣的是,你检查这里的代码发现它发送一个java序列化的对象:
bytearrayoutputstream bytestream=new bytearrayoutputstream();
objectoutputstream objectstream=new objectoutputstream(bytestream);
objectstream.writeobject(theobject);
msg.setdatahandler(new datahandler( new bytearraydatasource( bytestream.tobytearray(), "lotontech/javaobject" )));
在javax.mail.*包结构中你可能找不到datahandler类,因为它属于javabeans activation framework (jaf)的javax.activation包。jaf提供处理数据内容类型的机制,这种机制主要是针对inte.net内容而言,也即mime类型。
假如你已经试验过了以上的代码,通过email来发送一个java对象,你可能碰到定位bytearraydatasource类的问题,因为要么是mail.jar要么是activation.jar未被包含在程序里面。可以到javamail demo目录下去查找一下。
至于你一开始就感兴趣的附件,你可以在datahandler的构造器中建立一个javax.activation.filedatasource实例来实现。当然,你不可能单独发送一个文件;它可以作为一个文本消息的附件发送。可能你需要理解多部分消息的概念,现在,我在接收email的环境下为你介绍这个概念。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器