《Java邮件开发指南课件》由会员分享,可在线阅读,更多相关《Java邮件开发指南课件(36页珍藏版)》请在金锄头文库上搜索。
1、IT资讯交流网 WWW.IT315.ORG,Java邮件开发详解,讲师:张孝祥,配套书籍,IT资讯交流网 WWW.IT315.ORG,IT资讯交流网 WWW.IT315.ORG,Java邮件开发介绍,课程目标 为什么要学习和如何学习邮件开发 电子邮件的一些基本常识 准备实验环境 SMTP协议与POP3协议 什么是Java Mail 编写邮件发送程序 邮件内容的组织结构与邮件内容创建程序 邮件接收程序的简要介绍,课程目标,用程序代码生成一封带附件和内嵌图片的复杂邮件(效果演示) 用自己的程序代码将复杂邮件发送出去(效果演示) 一些特殊的经验和高级应用 中文名的邮件附件的乱码问题 Tomcat中J
2、avaMail支持与冲突问题 SMTP邮件服务器程序的开发,IT资讯交流网 WWW.IT315.ORG,为什么要学习邮件开发,曾经很赚钱的技术: 丁磊早期就是靠邮件起家,参看收集的网络资料 我本人对外承接的第一个项目也是邮件系统 对找工作有帮助: 我们好几个学员毕业后出去都在做邮件相关的项目,其中一个有意义的项目是将邮件内容发布成BBS的帖子。 许多办公自动化项目(OA)中都要附带发送邮件的功能,譬如我们要给学员发送通知,使用OutLook等手工方式就不合适,需要提高工作效率,让工作能够自动化,这也算是 信息化建设的一部分吧! 在许多网站项目中也都需要附带发送邮件的功能,即要求软件开发人员在W
3、EB应用中编写相应的邮件处理程序。 给新注册的用户自动发送一封包含其注册信息的欢迎E-Mail 给过生日的注册会员自动发送一封表示祝贺的E-Mail 将网站的最新活动信息通过E-Mail发送给所有的注册会员,IT资讯交流网 WWW.IT315.ORG,如何学习邮件开发,学习邮件开发包括两大方面: 发送与接收邮件 创建与解析邮件内容,IT资讯交流网 WWW.IT315.ORG,IT资讯交流网 WWW.IT315.ORG,电子邮件的一些基本常识,邮件服务器 电子邮箱 邮件客户端软件 邮件传输协议 电子邮件的传输过程,邮件服务器,电子邮件服务器主要提供以下功能: (1)接收用户投递的邮件; (2)将
4、用户投递进来的邮件转发给目标邮件服务器; (3)接收其他邮件服务器转发来的邮件并把邮件存储到其管理的用户邮中; (4)为前来读取邮件的用户提供读取服务。,邮件服务器按通讯协议可以划分为两种类型: SMTP服务器 POP3/IMAP服务器,IT资讯交流网 WWW.IT315.ORG,电子邮箱与邮件客户端软件,电子邮箱: 每个电子邮件服务器之上都可以开设多个电子邮箱,电子邮箱也称之为E-mail地址,它类似现实生活中的通讯地址,用户可通过这个地址接收别人发来的电子邮件和向别人发送电子邮件。电子邮箱的获得需要在邮件服务器上进行申请 ,确切地说,电子邮箱其实就是用户在邮件服务器上申请的一个帐户。邮件服
5、务器把接收到的邮件保存到为某个帐户所分配的邮箱空间中,用户通过其申请的用户名和密码登陆到邮件服务器上查收该地址已收到的电子邮件。,邮件客户端软件: 邮件客户端软件负责与邮件服务器通讯,主要用于帮助用户将邮件发送给SMTP服务器和从POP3/IMAP邮件服务器读取用户的电子邮件。邮件客户端软件通常集邮件撰写、发送和接收功能于一体。,IT资讯交流网 WWW.IT315.ORG,电子邮件的传输过程,IT资讯交流网 WWW.IT315.ORG,准备实验环境,提前在sina和sohu上开设一个免费帐号 获取smtp和pop3服务器的名称 在outlook中配置sina帐户 使用outlook发送和接收邮
6、件,IT资讯交流网 WWW.IT315.ORG,sina,Itcast_,sohu,Itcast_,smtp,smtp,pop3,IT资讯交流网 WWW.IT315.ORG,邮件传输协议,SMTP协议 全称为Simple Mail Transfer Protocol(简单邮件传输协议),它定义了邮件客户端软件与SMTP服务器之间、以及两台SMTP服务器之间的通讯规则。 POP3协议 全称为Post Office Protocol(邮局协议),它定义了邮件客户端软件与POP3服务器的通讯规则。 IMAP协议 全称为Internet Message Access Protocal(Internet
7、消息访问协议),它是对POP3协议的一种扩展,定义了邮件客户端软件与IMAP服务器的通讯规则。,IT资讯交流网 WWW.IT315.ORG,SMTP协议的命令,IT资讯交流网 WWW.IT315.ORG,POP3协议的命令,IT资讯交流网 WWW.IT315.ORG,什么是Java Mail,要自己写程序发送和接收邮件,可以直接采用Socket编程连接上远程的邮件服务器,然后按照邮件协议与邮件服务器进行交互,涉及较多细节。另外,要想自己编程创建出复杂的MIME格式的邮件,是一件非常困难和麻烦的事情。 JavaMail 是Sun公司为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的
8、一套标准开发包,它支持一些常用的邮件协议,如SMTP、POP3、IMAP。 开发人员使用JavaMail API编写邮件处理软件时,无须考虑邮件协议的底层实施细节,只要调用JavaMail开发包中相应的API类就可以了。 JavaMail 也提供了能够创建出各种复杂MIME格式的邮件内容的相关API。,IT资讯交流网 WWW.IT315.ORG,JavaMail 的体系结构与API分类,JavaMail API按其功能划分通常可分为如下三大类: 创建和解析邮件内容的API :Message类是创建和解析邮件的核心API,它的实例对象代表一封电子邮件。 发送邮件的API:Transport类是发
9、送邮件的核心API类,它的实例对象代表实现了某个邮件发送协议的邮件发送对象,例如SMTP协议。 接收邮件的API:Store类是接收邮件的核心API类,它的实例对象代表实现了某个邮件接收协议的邮件接收对象,例如POP3协议。 Session类 Session类用于定义整个应用程序所需的环境信息,以及收集客户端与邮件服务器建立网络连接的会话信息,如邮件服务器的主机名、端口号、采用的邮件发送和接收协议等。Session对象根据这些信息构建用于邮件收发的Transport和Store对象,以及为客户端创建Message对象时提供信息支持。,IT资讯交流网 WWW.IT315.ORG,JAF简介,JA
10、F(JavaBeans Activation Framework,JavaBeans激活框架)是一个专用的数据处理框架,它用于封装数据,并为应用程序提供访问和操作数据的接口。 JAF的主要作用在于让Java应用程序知道如何对一个数据源进行查看、编辑和打印等操作。对于通过JAF封装的数据,应用程序通过JAF提供的接口可以完成如下功能: 访问数据源中的数据 获知数据源的数据类型 获知可对数据进行的各种操作 用户对数据执行某种操作时,自动创建执行该操作的软件部件的实例对象 JavaMail API可以利用JAF从某种数据源中读取数据和获知数据的MIME类型,并用这些数据生成MIME消息中的消息体和消
11、息类型。,IT资讯交流网 WWW.IT315.ORG,邮件发送程序,使用JavaMail发送一封简单的邮件: 创建包含邮件服务器的网络连接信息的Session对象。 创建代表邮件内容的Message对象。 创建Transport对象、连接服务器、发送Message、关闭连接。 应用Authenticator类实现用户信息验证 结合Transport.send静态方法使用。,IT资讯交流网 WWW.IT315.ORG,邮件内容的组织结构,RFC822邮件格式 MIME协议 邮件编码 复合邮件结构分析,IT资讯交流网 WWW.IT315.ORG,复合邮件的整体结构图,IT资讯交流网 WWW.IT3
12、15.ORG,MIME中的组合关系,IT资讯交流网 WWW.IT315.ORG,复合邮件的分隔线层次结构分析,IT资讯交流网 WWW.IT315.ORG,邮件组织结构相关的API,MimeMessage类表示整封邮件。 MimeBodyPart类表示邮件的一个MIME消息。 MimeMultipart类表示一个由多个MIME消息组合成的组合MIME消息。,IT资讯交流网 WWW.IT315.ORG,邮件内容创建程序,简单邮件内容 包含内嵌图片的复杂邮件 包含内嵌图片和附件的复杂邮件 中文名的邮件附件的乱码问题 收件人和发件人的地址中附带友好名称 让回复地址与发件人地址不同,IT资讯交流网 WW
13、W.IT315.ORG,在Web应用程序中增加邮件发送功能,IT资讯交流网 WWW.IT315.ORG,Web邮件发送的界面示意,系统配置 会员管理 产品管理 权限管理 新闻发布 邮件发送 注销,后台管理系统,收件人:,选择,邮件正文:,附件1:,附件2:,附件3:,发送,单击后调出查询界面,IT资讯交流网 WWW.IT315.ORG,Tomcat中JavaMail支持与冲突,用普通方式在web应用程序中增加邮件发送功能 先演示在eclipse没有导入mail.jar可以编译,但部署运行有问题的原因 用Tomcat支持的JNDI资源方式,步骤: 配置JNDI资源。 将mail.jar拷贝到/l
14、ib目录下。 在Java程序中使用JNDI API获得mail的session对象。 分析类加载的冲突问题,IT资讯交流网 WWW.IT315.ORG,Webapp/lib/mail.jar,Jndi context,Jndi api,tomcat,IT资讯交流网 WWW.IT315.ORG,SMTP邮件服务器程序,SMTP邮件服务器与客户端程序的技术差异, SMTP邮件服务器既能收,也能发。发的时候怎样得知其他域的邮件服务器的地址? smtp服务器又分为两类,例如sina的,这两类服务器在接收邮件时也存在技术差异。,IT资讯交流网 WWW.IT315.ORG,SMTP邮件服务器程序,配置与查
15、看DNS服务器 验证DNS服务的作用 MX( mail box )记录 域名解析原理,IT资讯交流网 WWW.IT315.ORG,域名解析原理,一个域中的每个主机名与其IP地址的映射关系由这个域的DNS服务器负责管理,例如,“www.it315.org”、“ftp.it315.org”、“blog.it315.org”等主机名都由管理域“it315.org”的DNS服务器进行管理,而不能由管理域“org”的DNS服务器进行管理。 每个子域都必须在其直接父域的DNS服务器上注册该子域的名称和该子域的DNS服务器的IP地址,例如,必须在管理域“org”的DNS服务器注册子域“it315.org”和
16、管理子域“it315.org”的DNS服务器的IP地址后,域名“it315.org”才能真正被外界所认可。 为了方便对顶级域名的统一管理,在顶级域名之上其实还有一个根域名,根域名用点(.)表示,例如,“www.it315.org”也可以写为“www.it315.org.”,“www.it315.org.”中的最后的那个点(.)就表示根域名。 Internet中的根域名由InterNIC(国际互联网络信息中心)集中管理,顶级域名和其下的域名则由拥有该域名的组织、公司和个人自己管理。,IT资讯交流网 WWW.IT315.ORG,域名解析方式一,IT资讯交流网 WWW.IT315.ORG,域名解析方式二,IT资讯交流网 WWW.IT315.ORG,推荐我所编写的书籍,Java就业培训教程 Javascript网页开发 Java邮件开发详解 深入体验Java Web开发内幕核心基础 深入体验Java Web开发内幕高级特性,IT资讯交流网 WWW.IT315.ORG,结束语,热烈欢迎各软件公司到传智播客公司预定和招聘软件开发人才! 谢谢!,IT资讯交