没有合适的资源?快使用搜索试试~ 我知道了~
JavaMailAPI简介
需积分: 3 4 下载量 75 浏览量
2011-11-22
13:33:15
上传
评论
收藏 191KB PDF 举报
温馨提示
试读
13页
JavaMailAPI简介
资源详情
资源评论
资源推荐
JavaMail
JavaMail
JavaMail
JavaMail API
API
API
API 简介
JavaMail API 是一种可选的、能用于读取、编写和发送电子消息的包(标准扩展 ) 。您可使
用这种包创建邮件用户代理(
Mail
User Agent , MUA ) 类型的程序,它类似于 Eudora
、
Pine 及 Microsoft Outlook 这些邮件程序。其主要目的不是像发送邮件或其他邮件传输代理
( Mail Transfer Agent , MTA )类型的程序那样用于传输、发送和转发消息。换句话说,用
户可以与 MUA 类型的程序交互 , 以阅读和撰写电子邮件 。 MUA 依靠 MTA 处理 实际的发
送任务。
JavaMail API 的设计是 , 为收发信息提供与协议无关的访问 。 方式是把该 API 划分成两个部
分:
· 该 API 的第一个部分是本课程的重点。基本上是如何发送和接收独立于提供程序 / 协议的
消息。
· 第二个部分则使用特定的协议语言 , 如 : SMTP 、 POP 、 IMAP 和 NNTP 。 如果要让 JavaMail
API 与服务器通信 , 就需要为之提供协议 。 由于 Sun 公司对特定协议提供程序有充分的介绍
,
用户可以免费获取,所以本课程没有介绍创建特定协议提供程序的内容。
复习相关协议
在学习 JavaMail API 的深层知识之前,让我们回过头来看一看在该 API 中使用的协议 , 本质
上有 4 种人们常用的协议:
· SMTP
· POP
· IMAP
· MIME
<!--[if !supportLineBreakNewLine]-->
<!--[endif]-->
您 还需要了解 NNTP 及其他一些协议。理解这些协议的基本原理有助于您理解如何使 用
JavaMail API 。 而该 API 的设计要与协议无关 , 所以不能克服这些基础协议的限制 。 如果选
用的协议不支持某种功能,那么 JavaMail API 也无法在其上添加这种功能 。 (正如您一会儿
就会看到的,在操作 POP 协议时,常常会碰到这种问题 ) 。
SMTP
简单邮件传输协议 ( SMTP )是用于传送电子邮件的机制。在 JavaMail API 环境中,您的
基 于 JavaMai
l
的程序将与您公司 或 Interne t 服务提供商 ( ISP ) 的 SMT P 服务器通信 。 该 SMT P
服务器将会把消息转发给用作接收消息的 SMTP 服务器,最后用户可通过 POP 或 IMAP 协
议获取该消息。由于支持身份验证,所以不需要 SMTP 服务器是一种开放的转发器,但需
要确保 SMTP 服务器配置正确 。 JavaMail API 中没有集成用于处理诸如配置服务器以转发消
息或添加 / 删除电子邮件帐户这一类任务的功能。
POP
POP 的含义是邮局协议 , 当前的版本为 3 , 也称作 POP3 , 该协议是在 RFC 1939 中定义的
。
POP 是 Internet 上的大多数人用来接收邮件的机制。它为每个用户的每个邮箱定义支持 , 这
是它所做的全部工作 , 也是大多数问题的根源 。 在使用 POP 协议时 , 人们熟悉的很多功能
,
如查看收到了多少新邮件消息的功能, POP 根本不支持。这些功能都内置到诸如 Eudora 或
Microsoft Outlook 之类的邮件程序中 , 能为您记住接收的上一封邮件 , 以及计算有多少新邮
件这类信息。因此,使用 JavaMail API 时,如果想获取这类信息,将需要由自己进行计算 。
IMAP
IMAP 是用于接收消息的更加高级的协议,它是在 RFC 2060 中定义的。 IMAP 的含义是
“ Internet 消息访问协议 ” ,当前版本是第 4 版,也称作 IMAP4 。使用 IMAP 时,您的邮件服
务器必须支持该 协议。您不能只是简单地把程序转变为支持 IMAP ,而不是支持 POP ,就
指望能支持 IMAP 中的一切。假定您的邮件服务器支持 IMAP ,那么基于 JavaMail 的程序
就可利用在服务器上拥有多个文件夹的用户,并且这些文件夹可以被多个用户共享的功能 。
由于 IMAP 协议具有更高级的功能, 您也许会想 IMAP 应该被每一个人使用,但事实不是
这样 。 因为 IMAP 会加重邮件服务器的负荷 , 它需要服务器接收新消息 , 发送消息给请求的
用户,并在多个 文件夹中为每个用户维护这些消息。而这要集中备份,因而长期下去用户
的文件夹会变得越来越大,当磁盘空间用光了时,每个人都会遭受损失。而使用 POP 协议
时,已保存消息可以解除服务器的重负。
MIME
MIME 的含义是 “ 多用途的网际邮件扩充协议 ” 。 它不是一种邮件传输协议 , 相反 , 它定义传
输的内容 : 消息的格式 、 附件等 。 许多文档都定义了 MIME 协议 , 包含 : RFC 822 、 RFC 2045
、
RFC 2046 和 RFC 2047 。 作为 JavaMail API 的用户 , 一般不需要担心这些格式 。 但是 , 这些
格式确实存在,并为您的程序所用。
NNP 和其他协议
由 于 JavaMail API 分开了提供程序和其他部分,所以您可以轻松地为附加协议添加支持
。
Sun 公司提供第 3 方提供程序清单,这些提供程序要利用 Sun 公司不支持的少见的协议。
在这份清单中,您将会看到对 NNTP (网络新闻传输协议) [ 新闻组 ] 、 S/MIME (安全多用
途的网际邮件扩充协议)及其他协议的提供支持的第 3 方提供程序。
安装
目前有两种版本的 JavaMail API 最常用 : 1.2 和 1.1.3 。 本课程中的所有例子都适用于这两种
版本 。 其中 JavaMail API 1.2 是最新的 , 而 JavaMail API 1.1.3 中包含了 Java 2 企业版 ( J2EE
)
平台 1.2.1 版,所以它仍然很常用。使用 JavaMail API 的版本会对您的下载和安装产生一些
影响 。 这两种版本的 JavaMail API 都能与 JDK 1.1.6 、 Java 2 标准版 ( J2SE ) 平台 1.2.x 和 1.3. x
协同工作。
注意:在安装了 Sun 公司的 JavaMail 工具后,会在演示目录下看到许多示例程序。
安装 JavaMail 1.2
要使用 JavaMail 1.2 API ,可以下载 JavaMail 1.2 工具,然后解压缩 javamail-1_2.zip 文件,
并把 mail.jar 文件添加到典型安装路径下。 JavaMail 1.2 工具带有 SMTP 、 IMAP4 和 POP 3
提供程序以及核心类。
安装完 JavaMail 1.2 后,再安装 JavaBeans Activation Framework 。
安装 JavaMail 1.1.3
要 使用 JavaMail 1.1.3 API , 可以下载 JavaMail 1.1.3 工具 , 然后解压缩 javamail1_1_3.zip 文
件,并把 mail.jar 文件添加到典型安装路径下。 JavaMail 1.1.3 工具带有 SMTP 和 IMAP4 提
供程序以及核心类。
如果您想用 JavaMail 1.1.3 访问 POP 服务器,需要下载并安装 POP3 提供程序。 Sun 公司拥
有一个独立于 JavaMail 工具的提供程序。在下载并解压缩 pop31_1_1.zip 文件后,也还需
要把 pop3.jar 添加到典型安装路径下。
安装完 JavaMail 1.1.3 后,再安装 JavaBeans Activation Framework 。
安装 JavaBeans Activation Framework
JavaMail API 的所有版本都需要 JavaBeans Activation Framework ( JavaBeans 激活框架 ) ,这
种框架提供了对输入任意数据块的支持 , 并能相应地对其进行处理 。 看上去效果好像不太好
,
但该框架是在当今的许多浏览器和邮件工具中可以找到的基本 MIME 类型支持。下载该框
架后,解压缩 jaf1_0_1.zip 文件,并将 activation.jar 文件添加到典型安装路径下。
对于 JavaMail 1.2 用户,现在应该把 mail.jar 和 activation.jar 文件添加到典型安装路径下。
对于 JavaMail 1.1.3 用户 , 现在应该把 mail.jar 、 pop3.jar 和 activation.jar 添加到典型安装路径
下。如果您不打算使用 POP3 ,就不需要把 pop3.jar 文件添加到典型安装路径下。
如果您不想更改安装路径环境变量,可以把 JAR 文件复制到 Java 运行时环境( JRE )目录
下的 lib/ext 目录下。例如,对于 J2SE 1.3 版本, Windows 平台上的默认目录应该 是
C:\jdk1.3\jre\lib\ext 。
使用 Java 2 企业版
如果您使用的是 J2EE , 则在使用基本 JavaMail API 时 , 不需要做什么特殊的工作 ; JavaMail
API 带有 J2EE 类。只要确保 j2ee.jar 文件位于典型安装路径下,并完成了所有的设置工作 。
对 于 J2EE 1.2.1 , POP3 提供程序是单独提供的,因此需要下载该提供程序,并按安 装
JavaMail 1.1.3 的步骤,在 J2EE 1.2.1 中包含 POP3 提供程序。 J2EE 1.3 的用户会获得 J2E
E
和 POP3 提供程序,因而不需要对 POP3 提供程序执行独立安装。使用这两种版本的 J2E
E
用户,都不需要安装 JavaBeans Activation Framework 。
练习
设置您的 JavaMail 环境。
复习核心类
在 开始深入研究 JavaMail 类之前,首先让用户浏览一下构成 API 的核心类:会话、消息
、
地址、验证程序、传输,存储和文件夹。所有这些类都可以在 JavaMail API 即 javax.mai
l
的顶层包中找到,尽管您将频繁地发现您自己使用的子类是在 javax.mail.internet 包中找到
的。
Session 类
Session 类定义了一个基本的邮件会话 。 通过该会话可让别的工作顺利执行 。 Session 对象利
用 java.util.Properties 对象获取诸如邮件服务器 、 用户名 、 密码等信息 , 以及其他可在整个应
用程序中共享的信息。
Session 类的构造器是私有的 。 您可以获得一个可被 getDefaultInstance() 方法共享的单一的默
认会话:
Properties props = new Properties();
// fill props with any information
Session session = Session.getDefaultInstance(props, null);
或者,您可以用 getInstance() 方法创建一个独特的会话:
Properties props = new Properties();
// fill props with any information
Session session = Session.getInstance(props, null);
这两种情形下的 null 参数都是一种 Authenticator 对象 , 它不是在此时使用的 。 详细信息请参
阅其后的 “ Autherticator ” 一节。
在大多数情况下,使用共享会话就足够了,即使为多个用户邮箱处理邮件会话也是如此 。 您
可以在通信过程的后面一步添加上用户名和密码的组合,并保持所有的一切是独立的。
Message 类
一 旦创建了自己的 Session 对象,就是该去创建要发送的消息的时候了。这时就要用到消
息类型。作为一个抽象类,您必须操作一个子类,在大多数情况下,该子类 是
javax.mail.internet.MimeMessage 。一个 MimeMessage 是一种理解 MIME 类型和报头(在不
同的 RFC 文档 中均有定义)的消息。消息的报头被严格限制成只能使用 US-ASCII 字符
,
尽管非 ASCII 字符可以被编码到某些报头字段中。
剩余12页未读,继续阅读
沙小果
- 粉丝: 8
- 资源: 15
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于SpringBoot Mybatis-Plus TypeScript的微服务多租户SaaS管理快速开发框架 .zip
- 论文复现:QA-GNN: Reasoning with Language Models and Knowledge
- ipp(intel-oneAPI)下载地址.txt
- 基于spring-boot dubbox搭建的java分布式系统的前端管理.zip
- VLC+Qt demoVLC+Qt demo
- 海彪&龙梅子 - 寂寞的人伤心的歌 (DJ版) [mqms2].ogg
- 530springboot + vue 旅游管理系统.zip(可运行源码+数据库文件+文档)
- 基于SpringBoot + Thymeleaf + Layui + Apache Shiro 的后台管理系统 .zip
- 表1:长江大学文理学院课外学分申请表.et
- base.apk
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0