电子邮箱系统java代码 电子邮箱系统java代码怎么写( 二 )


SMTP
POP
IMAP
MIME
当然,上面的4个协议 , 并不是全部,还有NNTP和其它一些协议可用于传输信息,但是由于不常用到,所以本文便不提及了 。理解这4个基本的协议有助于我们更好的使用JavaMail API 。然而JavaMail API是被设计为与协议无关的,目前我们并不能克服这些协议的束缚 。确切的说,如果我们使用的功能并不被我们选择的协议支持,那么JavaMail API并不可能如魔术师一样神奇的赋予我们这种能力 。
1.SMTP
简单邮件传输协议定义了递送邮件的机制 。在下文中 , 我们将使用基于Java-Mail的程序与公司或者ISP的SMTP服务器进行通讯 。这个SMTP服务器将邮件转发到接收者的SMTP服务器,直至最后被接收者通过POP或者IMAP协议获取 。这并不需要SMTP服务器使用支持授权的邮件转发,但是却的确要注意SMTP服务器的正确设置(SMTP服务器的设置与JavaMail API无关) 。
2.POP
POP是一种邮局协议,目前为第3个版本,即众所周知的POP3 。POP定义了一种用户如何获得邮件的机制 。它规定了每个用户使用一个单独的邮箱 。大多数人在使用POP时所熟悉的功能并非都被支持,例如查看邮箱中的新邮件数量 。而这个功能是微软的Outlook内建的,那么就说明微软Outlook之类的邮件客户端软件是通过查询最近收到的邮件来计算新邮件的数量来实现前面所说的功能 。因此在我们使用JavaMail API时需要注意,当需要获得如前面所讲的新邮件数量之类的信息时,我们不得不自己进行计算 。
3.IMAP
IMAP使用在接收信息的高级协议,目前版本为第4版,所以也被称为IMAP4 。需要注意的是在使用IMAP时,邮件服务器必须支持该协议 。从这个方面讲,我们并不能完全使用IMAP来替代POP,不能期待IMAP在任何地方都被支持 。假如邮件服务器支持IMAP,那么我们的邮件程序将能够具有以下被IMAP所支持的特性:每个用户在服务器上可具有多个目录,这些目录能在多个用户之间共享 。
其与POP相比高级之处显而易见,但是在尝试采取IMAP时,我们认识到它并不是十分完美的:由于IMAP需要从其它服务器上接收新信息,将这些信息递送给用户,维护每个用户的多个目录 , 这都为邮件服务器带来了高负载 。并且IMAP与POP的一个不同之处是POP用户在接收邮件时将从邮件服务器上下载邮件,而IMAP允许用户直接访问邮件目录,所以在邮件服务器进行备份作业时,由于每个长期使用此邮件系统的用户所用的邮件目录会占有很大的空间,这将直接导致邮件服务器上磁盘空间暴涨 。
4.MIME
MIME并不是用于传送邮件的协议 , 它作为多用途邮件的扩展定义了邮件内容的格式:信息格式、附件格式等等 。一些RFC标准都涉及了MIME:RFC 822, RFC 2045, RFC 2046, RFC 2047,有兴趣的Matrixer可以阅读一下 。而作为JavaMail API的开发者,我们并不需关心这些格式定义,但是这些格式被用在了程序中 。
5.NNTP和其它的第三方协议
正因为JavaMail API在设计时考虑到与第三方协议实现提供商之间的分离,故我们可以很容易的添加一些第三方协议 。SUN维护着一个第三方协议实现提供商的列表:,通过此列表我们可以找到所需要的而又不被SUN提供支持的第三方协议:比如NNTP这个新闻组协议和S/MIME这个安全的MIME协议 。
三、安装
1.安装JavaMail
为了使用JavaMail API,需要从下载文件名格式为javamail-[version].zip的文件(这个文件中包括了JavaMail实现),并将其中的mail.jar文件添加到CLASSPATH中 。这个实现提供了对SMTP、IMAP4、POP3的支持 。
注意:在安装JavaMail实现之后 , 我们将在demo目录中发现许多有趣的简单实例程序 。