JAVA简单邮件发送客户端程序设计(doc 35页)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA简单邮件发送客户端程序设计(doc 35页)
武汉长江工商学院
--工学院
项目名称:简单邮件发送客户端
程序设计
学生姓名:
学号:
班级:
指导老师:
2012年6月12日
目录
1.设计概述 (1)
2.电子邮件发送协议与技术 (2)
2.1 SMTP协议简介及通讯模型 (2)
2.2 Java Mail API介绍 (5)
3.邮件发送客户端程序总体设计 (7)
3.1系统模块结构 (7)
3.2类的功能设计 (8)
3.2.1系统托盘类 (8)
3.2.2 账号设置类 (15)
3.2.3 邮件发送类 (23)
4.功能模块的实现 (25)
4.1 程序主界面的设计 (25)
4.2账号设置功能实现 (26)
4.3邮件发送功能实现 (28)
4.4附件发送实现 (34)
4.5系统托盘实现 (36)
5.程序测试 (37)
5.1 发送邮件程序账号设置测试 (38)
5.2发送电子邮件程序测试 (38)
5.3电子邮件程序系统托盘测试 (40)
设计小结 (41)
参考文献 (43)
附录1:SystemTrayTest类 (45)
附录2:MainSender类 (48)
附录3:LoginDialog类 (72)
1.设计概述
电子邮件(electronic mail,简称E-mail,标志:@,也被大家昵称为“伊妹儿”)又称电子信箱、电子邮政,它是—种用电子手段提供信息交换的通信方式。是Internet应用最广的服务:通过网络的电子邮件系统,用户可以用非常低廉的价格(不管发送到哪里,都只需负担电话费和网费即可),以非常快速的方式(几秒钟之内可以发送到世界上任何你指定的目的地),与世界上任何一个角落的网络用户联系,这些电子邮件可以是文字、图像、声音等各种方式。同时,用户可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索。
电子邮件的处理有两大部分组成:电子邮件在Internet上发送和接收的原理可以很形象地用我们日常生活中邮寄包裹来形容:当我们要寄一个包裹时,我们首先要找到任何一个有这项业务的邮局,在填写完收件人姓名、地址等等之后包裹就寄出而到了收件人所在地的邮局,那么对方取包裹的时候就必须去这个邮局才能取出。同样的,当我们发送电子邮件时,这封邮件是由邮件发送服务器(任何一个都可
以)发出,并根据收信人的地址判断对方的邮件接收服务器而将这封信发送到该服务器上,收信人要收取邮件也只能访问这个服务器才能完成。
本系统使用Eclipse作为开发工具,开发一个电子邮件发送端应用程序。系统实现的功能主要有帐号设置,发送及添加附件,托盘程序等。
本例发送程序采取了与发送邮件服务器连接实现电子邮件的发送。用户在“收件人邮箱”所对应的对话框中输入收件人的Email地址,并在账号设置窗口所对的对话框中输入发信人的Email地址,设置好账号后,进入主对话框编辑信件的正文(本程序还可以发送附件,直接选择路径,就可以发送附件),然后单击“发送”按钮,便可完成电子邮件的发送。电子邮件发送成功,程序将弹出一个“发送成功”的消息对话框;若电子邮件发送失败,程序将给出失败的相关信息。
2.电子邮件发送协议与技术
2.1 SMTP协议简介及通讯模型
(SMTP:Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到
目的地址传送邮件的规则,由它来控制信件的中转方式。它能够在传送中接力传送邮件,传送服务提供了进程间通信环境(IPCE),此环境可以包括一个网络,几个网络或一个网络的子网。理解到传送系统(或IPCE)不是一对一的是很重要的。进程可能直接和其它进程通过已知的IPCE通信。邮件是一个应用程序或进程间通信。邮件可以通过连接在不同IPCE上的进程跨网络进行邮件传送。更特别的是,邮件可以通过不同网络上的主机接力式传送。SMTP协议属于TCP/IP协议族,它帮助每台计算机在发送或中转信件时找到下一个目的地。通过SMTP协议所指定的服务器,我们就可以把E-mail寄到收信人的服务器上了,整个过程只要几分钟。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转你发出的电子邮件。
SMTP 是一种提供可靠且有效电子邮件传输的协议。SMTP是建模在 FTP 文件传输服务上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知。
SMTP 独立于特定的传输子系统,而且仅要求一条可以保证传送数据单元顺序的通道且只
需要可靠有序的数据流信道支持。SMTP 重要特性之一是其能跨越网络传输邮件,即“ SMTP邮件中继”。通常,一个网络可以由公用互联网上TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上TCP 可相互访问的主机,及其它LAN/WAN 中的主机利用非 TCP 传输层协议组成。使用 SMTP ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳 IP 地址。SMTP 在传输文件过程中使用25号端口。
可大致用下面的图2-1来表示。
图2-1 SMTP通信模型
2.2 Java Mail API介绍
一般情况下,在eclipse中,电子邮件程序的编写是主要是利用Java jdk1.7扩展包JavaMailAPI等及相关的SMTP等通信协议来实现的。随着现代软件业的发展,java提供了方便、简易、与服务器无关且稳固的电子邮件处理组件,使我们可以在程序开发语言中调用这些组件,利用很简单的语言实现功能强大的程序。JavaMail便是一个很好的电子邮件程序开发扩展组件。
JavaMail API是读取、撰写、发送电子信息的可选包。我们可用它来建立如Eudora、Foxmail、MS Outlook Express一般的邮件用户代理程序(Mail User Agent,简称MUA)。而不是像sendmail或者其它的邮件传输代理(Mail Transfer Agent,简称MTA)程序那样可以传送、递送、转发邮件。从另外一个角度来看,我们这些电子邮件用户日常用MUA程序来读写邮件,而MUA依赖着MTA处理邮件的递送。
JavaMail核心类:Session、Message、Address、Authenticator、Transport、Store、Folder。