问. 什么是 JavaMail API?
答:JavaMail API 是一组抽象的 API,它可用于构建邮件系统。API 提供了一个平台无关以及协议无关的框架,用于构建基于 Java 技术的电子邮件客户端应用程序。JavaMail API 提供了一些工具,用于阅读和发送电子邮件。服务提供程序实现了特定的一些协议。在 JavaMail API 软件包中,包括了几个服务提供程序;另外还有其他的一些服务提供程序可供使用。JavaMail API 是作为 Java 可选包实现的,它可用在 JDK 1.1.6 中,以后还可用在任何操作系统上。JavaMail API 也是 Java 2 Platform, Enterprise Edition (J2EE) 中的必需部分。
问. 我如何获得 JavaMail API 的实现?
答: Sun 提供了无版权的参考实现(二进制形式),开发人员可以使用和发行。参考实现包括核心的 JavaMail 包 和 IMAP、POP3 和 SMTP 服务提供程序。
问. 我如何发送反馈或评论?
答:发送电子邮件到
[email protected]。也可以考虑加入我们的低容量通告邮件列表 (low-volume announce mailing list)
[email protected]。在我们的 Web 页 http://java.sun.com/products/javamail 中有关于如何加入的说明。
问. javax.activation 在哪里?
答: javax.activation 是 JavaBeans Activation Framework (JAF) 的一部分。JAF 是 JavaBeans "Glasgow" 规范的一部分(参见 http://java.sun.com/beans/glasgow/jaf.html)。JavaMail API 将 JAF 用于数据内容处理。
问. JavaMail API 需要什么 JDK?
答:JavaMail API 要求 JDK/JRE 1.1.x 或更高版本。我们已经在 Sun Microsystems JDK 1.1.6 至 JDK 1.1.7 上测试过这个实现,而这些 JDK 运行于 Solaris SPARC、Microsoft Windows 95/NT 和 RedHat Linux 4.2。我们也已经在 Java 2 SDK, Standard Edition (J2SE SDK) 版本 1.2、1.3 和 1.4 上做过测试,而这些 JDK 运行于 Solaris SPARC。JavaMail API 是 Java 的可选包,它们不是核心 J2SE 的一部分,但在 J2EE 中却包括了它。参见 http://java.sun.com/j2se,获取关于 JDK 1.1 和 J2SE 的进一步信息。
问. 从哪里能找到我喜欢的操作系统的 JavaMail 版本?
答:JavaMail 是完全用 Java 编写的,并将运行在特定的操作系统上,该操作系统支持所需版本的 JDK。对于不同的操作系统,不需要任何特殊的版本。
问. JavaMail API 可以在浏览器中工作吗?
答:在 Netscape 和 Internet Explorer 中,我们已经成功运行过 JavaMail 1.3。
问. 我可以使用 JavaMail 来从 Web 邮件账户(比如 Yahoo 或 Hotmail)中阅读邮件吗?
答:不一定。许多基于 Web 的电子邮件服务只提供在浏览器中用 HTTP 进行访问。这些服务不能使用 JavaMail 来访问。如果服务也提供 POP3 或 IMAP 访问,可能不可以使用 JavaMail 来访问它。 联系你的 Web 电子邮件服务提供商,获取更详细的信息。也可参阅 JHTTPMail 项目,获得 JavaMail 的开放源代码提供程序,它提供了对 Hotmail 的访问。另一个有用的工具是 MrPostman——提供到 Hotmail 和 Yahoo! Mail 的 POP3 访问的代理服务器,这个工具可从如下站点获得:http://mrbook.org/mrpostman/。
问. 什么是 IMAP?
答:IMAP 是 Internet 消息访问协议 (Internet Message Access Protocol)。它是访问电子邮件消息的一种方法,而这些消息存储在(可能是共享的)邮件服务器上。换句话说,它允许“客户端”电子邮件程序访问远程的消息存储,并且在访问时,就像它们就在本地一样。IMAP 由 RFC2060 定义。有关进一步信息,请参阅 http://www.imap.org/。
问. 什么是 SMTP?
答:SMTP 就是简单邮件传输协议 (Simple Mail Transfer Protocol)。它可用于不同邮件主机间 RFC822 样式的消息的传输,以及用于将新消息提交给一台主机,然后由它来传送该消息。SMTP 在广泛使用中(起源于 1982 年),并由 RFC821 定义。
问. 什么是 MIME?
答:MIME 和 RFC822 是一些标准,它们用于描述电子邮件消息,而这些消息是跨 Internet 进行发送的。javax.mail.internet 子包(它是 JavaMail API 的一部分)提供了这两个包的完整实现。MIME 是由下述 RFC 指定的:RFC2045、RFC2046 和 RFC2047。
问. 什么是 POP3?
答:POP3 是邮局协议 (Post Office Protocol V3)。POP3 是一个非常有限的协议,用于访问单个邮箱。它在功能上比 IMAP 差了许多。POP3 应用非常广泛,并由 RFC1939 定义。
问. 对 MAPI、NNTP、Lotus Notes 和其他服务提供程序的支持怎样?
答:目前我们还没有计划实现这些提供程序中的任何一个。不过,JavaMail API 的体系结构提供一些功能,可以容易地插入第三方服务提供程序。我们的希望是第三方将通过编写针对其他标准和专有协议的提供程序来包括 JavaMail API。 参阅 第三方产品 页面,获取这些提供程序的最新列表。
问. 我如何在本地磁盘上存储邮件消息?
答:“本地存储提供程序”可用于将邮件消息存储在本地磁盘中。JavaMail API 不包括这一提供程序,但有几个提供程序可从第三方获得,它们针对不同的本地存储格式,比如 MH 和 Mbox。参阅我们的 第三方产品 页面,获取这些提供程序的最新列表。
问. 我可以从哪里找到有关 Sun 协议提供程序的文档?
答:针对 IMAP、POP3 和 SMTP 的 Sun 协议提供程序支持许多特性,它们不是 JavaMail API 规范的一部分。在 JavaMail 1.3 下载包中包括了这些协议提供程序的文档,这些文档是以 javadoc 格式包括的,并位于 docs/javadocs 目录。针对每个协议提供程序包的包级文档描述了一些属性,这些属性由协议提供程序支持。此外,协议提供程序包括了一些类和方法,应用程序可以使用它们来利用特定于提供程序的特性。注意,这些属性、类和方法的使用使得程序不可移植;它可能只与 Sun 的 JavaMail API 实现一起工作。
问. JavaMail API 实现是否完全免费?我可以把它与我的产品一起发行吗?
答:可以。当前版本的 JavaMail API 实现是完全免费的,你可以在产品中包括它。这一版本也包括 IMAP、POP3 和 SMTP 提供程序。请一定阅读 许可,并保证理解它。JavaBeans Activation Framework 也是在类似的许可下免费使用的。
问. 我可以获得 JavaMail API 实现的源代码吗?
答:在 SCSL 许可下,现在 JavaMail API 参考实现源代码可作为 J2EE 的一部分获得。可从 这里 下载它。
问. JavaMail 是否符合 Y2K?
答:是的。 Sun 的 JavaMail 实现是符合 Option-3 Y2K 的。请参看 JavaMail 包中的 NOTES.txt 文件,获取进一步信息。
问. 我的问题不在这里,我应该在哪里查找?
答:除 JavaMail API 规范和 javadocs 外(可从 我们的 Web 主页 获得并且是包括在下载包中的),不要忘记查阅 JavaMail API 包中包括的 README.txt 和 NOTES.txt 文件,获取其他的重要信息。
javamail-interest mailing list 是另一个信息来源。参阅 我们的 Web 主页,获取有关如何订阅的说明以及指向文档的链接。
Java Developer Connection 维护 JavaMail 论坛,请参阅 http://forum.java.sun.com。注意,JavaMail 团队管理 javamail-interest 邮件列表,但不管理 JavaMail 论坛。
jGuru 也维护 JavaMail FAQ,可在如下地址找到它:http://www.jguru.com/faq/JavaMail。