Java Mail API的结构本身证实了他的研发者的基本目标之一--软件研发的工作量应该取决于应用程式本身的复杂程度连同研发者所需要的控制程度。换句话说,Java Mail API尽可能地保持简单。乍看起来,Java Mail API所拥有的类总数连同类之间的关系可能让人误解为要花费漫长的学习时间。实际上,一旦正式开始使用,您就会发现该API不失为在应用程式中加入健壮的邮件/通讯支持的简单工具。
建立JavaMail使用环境,需要哪些软件
首先,需要安装JavaMail API。现在有两种常用的 JavaMail API 版本:1.2 和 1.1.3。虽然版本 1.2 是最新版,但版本 1.1.3 包含了Java 2 平台企业版(Java 2 Platform, Enterprise Edition,J2EE)的版本 1.2.1,所以仍然有很多人使用他。
JavaMail 1.2 的安装
要使用 JavaMail 1.2 API,请下载 JavaMail 1.2 实现,解开Javamail-1_2.zip 文档,并将 mail.jar 文档添加到 CLASSPATH 中。除了核心类,随版本 1.2 实现一起提供的更有 SMTP、IMAP4 和 POP3 供给商。
JavaMail 1.1.3 的安装
要使用 JavaMail 1.1.3 API,请下载 JavaMail 1.1.3 实现,解开Javamail1_1_3.zip文档,并将 mail.jar 文档添加到您的 CLASSPATH 中。除了核心类,随版本 1.1.3 实现一起提供的更有 SMTP 和 IMAP4 供给商。
假如您用 JavaMail 1.1.3 访问一个 POP 服务器,请下载并安装一个 POP3 供给商。Sun 就有一个单独于 JavaMail 实现。下载并解开 pop31_1_1.zip 文档后,将 pop3.jar 也添加到您的 CLASSPATH 中。
其次是JavaBeans Activation Framework 的安装。JavaMail API 的任何版本都需要 JavaBeans Activation Framework 来支持任意数据块的输入及相应处理。功能似乎不多,但现在许多浏览器和邮件工具中都能找到这种基本的 MIME 型支持。下载完框架后,解开 jaf1_0_1.zip 文档,并将 activation.jar 文档添加到 CLASSPATH 中。
对于 JavaMail 1.2 用户来说,现在您应该已将 mail.jar 和 activation.jar 文档添加到 CLASSPATH 中了。而对于 JavaMail 1.1.3 用户,现在您应该已将 mail.jar、pop3.jar和 activation.jar文档添加到 CLASSPATH 中了。假如不打算用 POP3,就不必将 pop3.jar 添加到 CLASSPATH 中去。
假如您不想更改 CLASSPATH 环境变量,将 jar 文档复制到您 Java 运行时环境(Java Runtime Environment,JRE)目录下的 lib/ext 目录中去。例如,J2SE 1.3 发行版的缺省目录在 Windows 平台的 C:\jdk1.3\jre\lib\ext。
Java Mail API有哪些核心类
Javax.mail.Session:Session 类定义了一个基本邮件会话(session),是Java Mail API最高层入口类。任何其他类都是经由这个session 才得以生效。Session 对象用 Java.util.Properties 对象获取信息,如邮件服务器、用户名、密码及整个应用程式中共享的其他信息。
Javax.mail.Message:一旦获得 Session 对象,就能够继续创建要发送的消息。这由 Message 类来完成。因为 Message 是个抽象类,必需用一个子类,多数情况下为 Javax.mail.internet.MimeMessage。MimeMessage 是个能理解 MIME 类型和头的电子邮件消息,正如不同 RFC 中所定义的。虽然在某些头部域非 ASCII 字符也能被译码,但 Message 头只能被限制为用 US-ASCII 字符。
Javax.mail.Address:一旦您创建了 Session 和 Message,并将内容填入消息后,就能够用 Address 确定信件地址了。和 Message 相同,Address 也是个抽象类。您用的是 Javax.mail.internet.InternetAddress 类。
Javax.mail. Authenticator:和 Java.net 类相同,JavaMail API 也能够利用 Authenticator 通过用户名和密码访问受保护的资源。对于JavaMail API 来说,这些资源就是邮件服务器。JavaMail Authenticator 在 Javax.mail 包中,而且他和 Java.net 中同名的类 Authenticator 不同。两者并不共享同一个 Authenticator,因为JavaMail API 用于 Java 1.1,他没有 Java.net 类别。
要使用 Authenticator,先创建一个抽象类的子类,并从 getPasswordAuthentication() 方法中返回 PasswordAuthentication 实例。创建完成后,您必需向 session 注册 Authenticator。然后,在需要认证的时候,就会通知 Authenticator。您能够弹出窗口,也能够从配置文档中(虽然没有加密是不安全的)读取用户名和密码,将他们作为 PasswordAuthentication 对象返回给调用程式。
Javax.mail.Transport:消息发送的最后一部分是使用 Transport 类。这个类用协议指定的语言发送消息(通常是 SMTP)。他是抽象类,他的工作方式和 Session 有些类似。仅调用静态 send() 方法,就能使用类的 缺省 版本:Transport.send(message);或,读者也能够从针对自己的协议的会话中获得一个特定的实例,传递用户名和密码(假如不必要就不传),发送消息,然后关闭连接。
Javax.mail.Store:Store类实现特定邮件协议上的读、写、监控、查找等操作。通过Javax.mail.Store类能够访问Javax.mail.Folder类。
Javax.mail.Folder:Folder类用于分级组织邮件,并提供照Javax.mail.Message格式访问email的能力。
【编辑推荐】