基于JAVA GUI的电子邮件客户端软件的设计与实现Word文档下载推荐.docx
- 文档编号:5257441
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:36
- 大小:303.91KB
基于JAVA GUI的电子邮件客户端软件的设计与实现Word文档下载推荐.docx
《基于JAVA GUI的电子邮件客户端软件的设计与实现Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于JAVA GUI的电子邮件客户端软件的设计与实现Word文档下载推荐.docx(36页珍藏版)》请在冰点文库上搜索。
1.1MaintenanceSystemAdministratorsbasicinformation;
1.2Studentresponsefunctions;
2.Emailfunctions
Threefunctionwillbeavailable
2.1Sendingmails
2.2Receivingmails
2.3Addressbook
Thesystemdevelopmentprocess:
1.Emailclientneedsanalysis;
2.Emailclientsystemanalysis;
3.Emailclientfunctionmodulespartition;
4.Emailclientdesign;
5.Emailclientinterfacedesign;
6.Emailclientfunctionaldesignandcodemodulestoachieve
Keyword:
java,javaGUI,javamail
前言
邮件系统是一套单独的系统,要有自己的服务器,在邮件系统中可以设多个域,每个域中可以设多个用户,比如说我买了anymacro或快客的邮件系统,可以进行多项设置.它的数据是放在自己的服务器上.
随着信息技术的提高,网络的普及于发展,越来越多的网络工具随之产生出来,网络邮箱就是其中之一,它可以通过网络来实现人们之间的通信,可以给人们的工作带来极大的方便,同时也缩短了人与人之间的距离,使人们在通信上需要花费的时间更短。
该Email客户端不仅仅具有网络邮箱的功能,它可以让用户绑定多个邮箱,可以说是多个网络邮箱的公共接口,不进方便了人们的工作,还做到了有效利用网络的信息资源,极大的提高人们的工作效率,减少了很多的工作量。
因此它应该是能够得到用户欢迎的一个系统。
第1章系统概述及系统分析
1.1系统概述
该系统的功能模块主要由以下部分组成:
1.1.1基本设置模块
该模块可以完成此用户设置和邮箱设置两大内容,其中用户设置可以完成用户的一些基本信息的设置,包括用户名、用户密码、联系方式、邮政编码、通讯地址、邮箱地址,并可以对其进行存储、浏览、查看、删除、修改、打印等操作。
邮箱设置可以完成对所使用邮箱的邮箱服务器、SMTP、POP3的一些设置,也可以对这些设置进行存储、浏览、查看、删除、修改等操作。
1.1.2Email功能模块
该模块可以完成网络邮箱的收取邮件、发送邮件、保存邮件的功能,并可以对这些邮件进行存储、转发、群发、浏览、删除、修改、打印等操作。
此模块还具有通讯录的功能,可以存储其他网络邮箱用户的用户名和邮箱地址进行存储、修改等功能。
1.2需求分析
Email客户端的设计目的是要为了实现网络邮箱的邮件发送和收取的以些功能。
为使用邮箱的用户提供便利。
系统所面对的用户可以是任何普通用户,系统对于一个用户只允许以一种身份登录。
用户登录后可以对系统进行管理,其主要操作是维护个人的基本信息,对其信息进行修改、存储等操作。
将系统需求加以总结,得出系统需求如下:
●系统可以运行任何操作系统平台上,并具有友好的用户界面。
●系统用户类型为:
任何普通用户。
1.3可行性分析
1.3.1技术可行性分析
Java很有雄心的宣言--"
write
once,
run
anywhere"
许诺:
一个具有下拉菜单,命令按钮,滚动条以及其他常见的GUI控件的应用程序将能够在各种操作系统上运行而不必重新编译成针对某一平台的二进制代码,包括Microsoft
Windows,
Sun’s
own
Solaris,
Apple’s
Mac
OS以及Linux。
1.3.2环境可行性分析
也就是说本系统可以跨平台使用.
1.3.3经济可行性分析
开发此系统所用软件可在网络上下载使用。
第2章系统开发基本介绍
2.1选题背景与目的
正是因为该系统所具有的这些优点才开发了此系统。
2.2系统开发工具
本系统在开发过程中使用javaGUI和java中javamail工具包实现了email的收发和一些基本的管理功能。
2.3系统开发环境
在软件环境方面,系统的开发环境如下:
操作系统:
SuseLinux;
开发平台:
java;
2.4开发技术概述
2.4.1J2EE概述
J2EE是美国Sun公司刚刚推出的一种全新概念的模型,与传统的互联网应用程序模型相比有着不可比拟的优势。
目前,Java2平台有3个版本,它们是适用于小型设备和智能卡的Java2平台Micro版(Java2PlatformMicroEdition,J2ME)、适用于桌面系统的Java2平台标准版(Java2PlatformStandardEdition,J2SE)、适用于创建服务器应用程序和服务的Java2平台企业版(Java2PlatformEnterpriseEdition,J2EE)。
J2EE是一种利用Java2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。
J2EE技术的基础就是核心Java平台或Java2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"
编写一次、随处运行"
的特性、方便存取数据库的JDBC(JavaDataBaseConnectivity)应用程序接口(API,ApplicationProgramInterface)技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB(EnterpriseJavaBeans)、JavaServletsAPI、JSP(JavaServerPages)以及XML技术的全面支持。
其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。
2.4.2JavaGUI
当Java在1995年的春天第一次发布的时候,它包含了一个叫AWT(Abstract
Windowing
Toolkit)的库,用来构建图形用户界面应用程序。
为了方便用Java构建图形用户界面,Sun最初提供了一个在所有平台下具有的独特Java外观的图形界面库。
Sun在applet技术策略方面的首要伙伴Netscape提出applets应该维持和运行时平台一样的外观。
他们希望applets在某一平台下在显示和行为上能够像其他应用程序一样。
为了实现Netscape的"
本地外观"
的目标,在JDK的第一个发布版中包含了AWT这个库。
AWT的缺省实现使用了"
对等"
机制,即每一个Java
GUI窗口部件都在底层的窗口系统中有一个对应的组件。
例如,每一个java.awt.Button对象将在底层窗口系统中创建一个唯一对应的button。
当用户点击那个按钮的时候,事件将从本地实现库传送到Java虚拟机里,并且最终传送到与java.awt.Button对象相关联的逻辑。
对等系统的实现以及Java组件与对等组件之间的交流的实现都隐藏在底层JVM实现中,Java语言级的代码仍然跨平台。
于1997年JavaOne大会上提出并在1998年5月发布的JFC(Java
Foundation
Classes)包含了一个新的使用Java窗口开发包。
这个新的GUI组件叫做Swing,感觉到它是对AWT的升级,并且看起来对Java占据计算机世界很有帮助。
尽管"
Swing"
仅仅是这个新组件的指代名称,它一直持续使用到今天。
可能是因为这个名称太贴切了,Swing尝试着以以下几种方式改变公认的观点:
AWT依赖对等架构,用Java代码包装本地窗口部件,Swing却根本不使用本地代码和本地窗口部件AWT把绘制屏幕交给本地窗口部件,Swing自己的组件绘制自己,因为Swing不依赖本地窗口部件,它可以抛弃AWT的最小公分母的方法并在每个平台下实现每个窗口部件,从而创建一个比AWT更强大的开发工具包
从最开始Java就提供了构建跨平台的窗口GUI应用程序库,从AWT,Swing到现在的SWT和JFace。
最初的工具包能力微弱,但是后来提供的工具包认识到之前工具包的缺点并取得了巨大的进步。
SWT和JFace不仅使Java成为一个构建桌面应用程序的可行的选择,也使之成为一个具有优势的开发平台。
尽管过去对得到轻便和强大的Java系统的尝试必然意味着接受它在GUI方面的缺点,如今这个不足已经不存在了,Java终于可以统领它在桌面计算应用方面的位置了。
2.4.3Javamail
想将邮件工具结合到您独立于平台的Java解决方案中吗?
再没有比JavaMailAPI更合适的了,它提供了个独立于协议的模块,能用于IMAP、POP、SMTP、MIME和其它涉及因特网的消息传递协议。
现在,有了JavaBeansActivationFramework(JAF)的支持,您的应用程序经由JavaMailAPI就能启用邮件功能啦。
第3章系统总体设计
3.1系统功能模块划分
模块分析是描述系统需求的一个过程,需要将需求分析中的感性描述进行抽象,提取出要实现的功能,这是整个系统开发的一个关键过程。
模块分析的第一步,是描述Email客户端的功能,以此确定系统的功能需求。
本Email客户端对任何一个用户都是普通用户,无管理员设置,对每一个用户都具有普通邮箱所具有的收取、发送邮件的功能,因此根据用户操作需求,将系统划分为如下功能,并对其模块的划分和功能进行描述.整个系统的模块结构如图3.1所示,此图将Email客户端划分为三大模块,这些模块又是由若干个子模块构成的,形成一个结构紧凑功能明确完整,子模块的划分见3.2系统具体功能模块的基本介绍。
图3.1
3.2系统具体功能模块基本介绍
本部分主要介绍Email客户端的一些基本功能,主要描述了收件箱、发件箱、和通讯录所具有的功能,详细设计见第4章内容。
3.2.1发件箱
发件箱可以通过用户设置发送用户所需要的邮件信息,本页面可以实现查看已保存邮件信息、重发已发邮件、转发所收邮件、邮件标记、编辑邮件、新建邮件、删除邮件和打印邮件、发送,抄送、密送、发送附件、存储邮件、未存储提示等功能,具体功能图如图3.2.1
图3.2.1
3.2.2收件箱
收件箱可以通过用户设置收取用户所需要的邮件信息,本页面可以实现查看所收取的邮件信息、转发邮件、群发邮件、邮件标记(标记已读和未读)、编辑和存储邮件、删除邮件和打印邮件等功能,具体功能图如图3.2.2
图3.2.2
3.2.3通讯录
通讯录可以存储用户的好友信息,可以方便用户完成对邮件信息的发送,尤其是转发和群组发送功能,通讯录的存在在很大程度上方便了使用系统的用户。
本通讯录可以实现查看好友、增加好友、删除好友、编辑好友信息、删除好友信息等功能,本系统还可以建立多个通讯录,每个通讯录都可以对所存用户进行分组,以便方便邮件的发送,存储通讯录的文件还可以转存,即修改当前通讯录的存放位置,其基本功能图如图3.2.3
图3.2.3
第4章系统详细设计及系统实现
4.1章节内容总体介绍
系统分析完成后,进入系统的设计阶段这是整个系统实现过程中非常重要的一个阶段。
本章节描述了系统设计的详细过程和内容及实现过程。
4.2各模块功能详细设计
4.2.1发送邮件功能的实现
4.2.1.1发送普通邮件功能
实现此功能需要引入javamail工具包中的以下包
importjavax.mail.*;
importjavax.mail.internet.*;
构造sendMail类的主要代码如下
publicclasssendMail{
privateStringSMTP,mailFrom,mailTo,mailCC,mailTitle,mailBody,mailEncode;
privateStringuserName,userPass;
privateObject[]attachFileList;
privatebooleanisAuthentic=false;
publicsendMail(){
//初始化参数代码段
this.SMTP="
"
;
this.mailFrom="
this.mailTo="
this.mailCC="
this.mailTitle="
this.mailBody="
this.mailEncode="
BIG5"
}
//为用户提供参数设置接口
//在本系统中通过以下方法实现对用户写入的信息加以传递
publicvoidsetFrom(Stringfrom){this.mailFrom=from;
publicvoidsetTo(Stringto){this.mailTo=to;
publicvoidsetCC(Stringcc){this.mailCC=cc;
publicvoidsetBody(Stringbody){this.mailBody=body;
publicvoidsetTitle(Stringtitle){this.mailTitle=title;
publicvoidsetSMTP(Stringsmtp){this.SMTP=smtp;
publicvoidsetUserName(StringuserName){this.userName=userName;
publicvoidsetPassword(Stringpass){this.userPass=pass;
publicvoidsetAttachFile(Object[]fileListAry){
this.attachFileList=fileListAry;
}
//设置文字编码代码如下
publicvoidsetEncode(Stringencode){this.mailEncode=encode;
publicintsend(booleanhasSMTPAuth){
this.isAuthentic=hasSMTPAuth;
//检查参数是否安全
if(!
checkParameters(isAuthentic)){
return1;
}else{
Propertiesprop=newProperties();
//设定SMTPServer
prop.put("
mail.smtp.host"
this.SMTP);
SessionmailConn=Session.getDefaultInstance(prop,null);
Messagemsg=newMimeMessage(mailConn);
try{
msg.setHeader("
Content-Transfer-Encoding"
this.mailEncode);
reEncode();
//设置邮件的地址和邮件的编码
msg.setFrom(newInternetAddress(this.mailFrom));
//Setrecievere-mailaddressandnickname
msg.setRecipient(Message.RecipientType.TO,
newInternetAddress(this.mailTo));
if(this.mailCC.trim().length()!
=0){
msg.setRecipient(Message.RecipientType.CC,
newInternetAddress(this.mailCC));
}
//设定信件标题
if(this.mailTitle.trim().length()==0){
msg.setSubject("
[无标题信件]"
);
msg.setSubject(this.mailTitle);
Multipartmp=newMimeMultipart();
MimeBodyPartmbpBody=newMimeBodyPart();
mbpBody.setContent(this.mailBody+this.mailEncode);
MimeBodyPartmbpFile;
for(inti=0;
i<
attachFileList.length;
i++){
StringfullPath=this.toBIG5(attachFileList[i].toString());
mbpFile=newMimeBodyPart();
FileDataSourcefds=newFileDataSource(fullPath);
mbpFile.setDataHandler(newDataHandler(fds));
mbpFile.setFileName(fds.getName());
mp.addBodyPart(mbpFile);
mp.addBodyPart(mbpBody);
//將內容加入
msg.setContent(mp);
if(isAuthentic){//送信
mail.smtp.auth"
isAuthentic);
Transporttrans=mailConn.getTransport("
smtp"
try{
trans.connect(this.SMTP,this.userName,this.userPass);
trans.sendMessage(msg,msg.getAllRecipients());
return0;
}catch(Exceptionex){
ex.printStackTrace();
return2;
}finally{
trans.close();
Transport.send(msg);
}catch(SendFailedExceptionex){
System.out.println(ex.toString());
return3;
ex.printStackTrace();
return4;
}
privatebooleancheckParameters(booleanhasSMTPAuth){
if(SMTP.trim().length()==0||mailFrom.trim().length()==0
||mailTo.trim().length()==0)
returnfalse;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于JAVA GUI的电子邮件客户端软件的设计与实现 基于 JAVA GUI 电子邮件 客户端 软件 设计 实现