




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安建筑科技大学课程设计(论文)第1页共43页目录第1章引言2第2章需求分析321产品可行性分析322产品功能需求分析522电子邮件系统收发邮件的过程5第3章总体设计731本系统的总体架构模型732系统模块的划分8第4章详细设计941接收邮件模块942发送和回复邮件模块943邮件处理模块1044界面实现的流程图1045邮件发送过程的流程图1146邮件接收流程1347用户鉴权和客户端配置信息流程1548阅读邮件流程16第5章系统功能测试1851登陆界面及邮箱账户设置界面测试1852主界面测试1853发送界面与收件箱界面测试1854阅读邮件界面测试20第6章结论与展望2161结论2162展望21致谢22参考文献23附录24西安建筑科技大学课程设计(论文)第2页共43页第1章引言电子邮件(简称EMAI1又称电子信箱、电子邮政,表示通过电子通讯系统进行信件的书写、发送和接收,它是继电话、电报和传真之后最快捷、最方便的通讯工具,是20世纪人类最伟大的发明。早在互联网流行很久以前,电子邮件就已经存在。它是在主机多终端的主从式体系中通过一台计算机终端向另一台计算机终端传送文本信息的相对简单方法发展起来的,也就是人们常说的C/S架构。如今,电子邮件已经将人与人越来越紧密地联系在一起,成为人们生活的一部分。通过电子邮件系统,人们可以用非常低廉的价格,以非常快速的方式,与世界上任何一个网络用户联系。而电子邮件的形式也从原来的纯文本方式变成现在的HTML页面并加载附件的多彩形式,同时,人们还可以得到大量免费的新闻、专题邮件,并实现轻松的信息搜索,这是任何传统的方式也无法相比的。电子邮件的使用简易、投递迅速、收费低廉、易于保存、全球畅通无阻,使得它被广泛地应用。电子邮件收发系统基于CLIENT/SERVER模式,主要功能通过收发电子邮件客户端程序实现。收发电子邮件需要标准的会话协议支持,SMTP(SIMPLEMAILTRANSFERPROTOCOL)用于发送电子邮件,POP3协议(POSTOFFICEPROTOCOL)用于接收电子邮件。电子邮件使人们的交流方式得到了极大的改变人们平时所发送或接收的电子邮件,并不是由本机来实现SMTP协议与POP3协议,电子邮件内容全是存储在相应服务商的POP3服务器上,用户必须要登录到相应的服务器上才能进行浏览、查询或者删除操作,但是,在网络繁忙或大家集中传输数据的时候,人们可能收不到消息或者打开很慢为了解决这一难题,我们开发了电子邮件收发系统,将邮件服务器上的内容保存到本地机器上,这样即使在网络断开的情况下,也能查询已存在本地机器上的邮件。西安建筑科技大学课程设计(论文)第3页共43页第2章需求分析21产品可行性分析整个电子邮件系统由电子邮件服务器端和电子邮件客户端组成,其工作过程及一些涉及到的协议如图21所示图21电子邮件系统工作过程图其中SMTP是因特网电子邮件系统重要的应用层协议。它使用由TCP提供的可靠的数据传输服务把邮件消息从发信人邮箱所在邮件服务器传送到收信人邮箱所在邮件服务器。SMTP是客户服务器应用模式,由发信人的邮件服务器执行的客户端和收信人的邮件服务器执行的服务器端组成。SMTP的客户端和服务器端同时运行在每个邮件服务器上。当一个邮件服务器向其它邮件服务器发送邮件消息时,它是作为SMTP客户端。当一个邮件服务器从其它邮件服务器接收邮件消息时,它是作为SMTP服务器端。SMTP规范定义在RFC821中,它的作用是把邮件消息从发信人的邮件服务器传送到收信人的邮件服务器。SMTP限制所有邮件消息的信体必须是简单的7位ASCII字符格式。这个限制使得二进制多媒体数据在由SMTP传送之前必须编码成7位ASCII文本;SMTP传送完毕之后,再把相应的7位ASCII文本邮件消息解码成二进制数据。POP3是RFC1939中定义的一个简单的邮件访问协议,其功能有限。POP3开始于用户代理打开一个到POP3服务器端口号110的TCP连接。POP3服务器西安建筑科技大学课程设计(论文)第4页共43页与邮件服务器运行在相同的服务器主机上,前者从用户的邮箱中读取并可能删除邮件消息,后者往用户的邮箱中写入邮件消息。TCP连接建立好之后,POP3依次经历授权认证、处理和更新3个阶段。在授权阶段,用户代理分别发出一个用户名和一个口令以认证下载邮件消息的用户。在处理阶段,用户代理获取邮件消息,并可以标记待删除的邮件消息或去掉这些标记,获取邮件统计信息。更新阶段发生在用户代理发出QUIT命令以结束当前POP3会话之后,期间POP3服务器删除己加过删除标记的邮件消息。在POP3会话期间,用户代理发出命令,POP3服务器则对每个命令响应以一个应答。可能的应答有两个指出刚才的命令执行成功的OK有时后跟一个解释性消息和指出刚才的命令执行有误的ERR。一个邮件的收发就是通过SMTP传递消息到对端邮件服务器,对端客户使用POP3协议从服务器上获得邮件的过程。在本设计中,采用自己编写基于SOCKET的方法,来解析协议,进行邮件收发。同时,在进行邮件收发,需要提供基于BASE64加密解密的鉴权信息,其中BASE64是一种很简单的编码转换对于待编码数据,以3个字节为单位,依次取6位数据并在前面补上两个0形成新的8位编码,由于3846,这样3个字节的输入会变成4个字节的输出,长度上增加了1/3。上面的处理还不能保证得到的字符都是可见字符,为了达到此目的,BASE64制定了一个编码表,进行统一的转换,见表21。码表的大小为2664,这也是BASE64名称的由来。由于编码是以3个字节为单位,当剩下的字符数量不足3个字节时,则应使用0进行填充,相应地,输出字符则使用占位,因此编码后输出的文本末尾可能会出现1至2个。表21BASE64编码表值编码值编码值编码值编码值编码值编码值编码值编码0A8I16Q24Y32G40O48W5641B9J17R25Z33H41P49X5752C10K18S26A34I42Q50Y5863D11L19T27B35J43R51Z5974E12M20U28C36K44S5206085F13N21V29D37L45T5316196G14O22W30E38M46U542627H15P23X31F39N47V55363/西安建筑科技大学课程设计(论文)第5页共43页BASE64的加密解析,SUN公司有自己内部专用的API,该API位于JRE/LIB下,但是该API并没有JAVADOC,属于不推荐使用的方法,将在后续JDK版本中被剔除,因为本设计根据BASE64编码表,自行编写BASE64加密解密方法。分析电子邮件传输过程中的协议和加密算法后,本设计进行自主开发是可行的。22产品功能需求分析电子邮件系客户端发送邮件阅读邮件账户设置保存邮件登陆验证接收邮件图22系统总体功能图其中本设计实现的是一个电子邮件客户端,类似于OUTLOOK,有用户邮箱账户设置,登陆验证,接收邮件,阅读邮件,保存邮件,发送邮件等功能。发送邮件根据用户设置的公网邮箱账户或者一个公网不存在的自己私人域内的符合邮箱命名规范的邮箱账户,可实现对公网邮箱和本客户端(比如新浪,QQ,163)的邮件收发;若邮箱账户是自己随机设置的账户,则不可以向除本客户端以外的邮件服务器发送邮件;接收邮件接收来自本客户端私人邮箱发来的邮件,在接收邮件的同时,将对邮件进行默认保存,接收完成后,点击即可实现对邮件的阅读;登陆验证客户端在启动的时候,会对用户的账户信息与客户端内部保存的信息,进行鉴权,防止旁人使用客户端乱发垃圾邮件;账号设置这个功能主要是实现对邮件发送代理的选择,决定发送邮件功能的能力。22电子邮件系统收发邮件的过程西安建筑科技大学课程设计(论文)第6页共43页图23收发邮件过程图1发信人调用用户代理来编辑要发送的邮件。用户代理用SMTP把邮件传送给发送端邮件服务器。2发送端邮件服务器将邮件放入邮件缓存队列中,等待发送。3运行在发送端邮件服务器的SMTP客户进程,发现在邮件缓存中有待发送的邮件,就向运行在接收端邮件服务器的SMTP服务器进程发起TCP连接的建立。4TCP连接建立后,SMTP客户进程开始向远程的SMTP服务器进程发送邮件。当所有的待发送邮件发完了,SMTP就关闭所建立的TCP连接。5运行在接收端邮件服务器中的SMTP服务器进程收到邮件后,将邮件放入收信人的用户邮箱中,等待收信人在方便时进行读取。收信人在打算收信时,调用用户代理,使用POP3(或IMAP)协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回(如果邮箱中有来信的)。西安建筑科技大学课程设计(论文)第7页共43页第3章总体设计31本系统的总体架构模型主界面用户鉴权和客户端配置信息主界面加载时,被调用登陆界面账号界面发送邮件界面接收邮件界面阅读邮件界面登陆鉴权发送邮件邮箱账号设置发送邮件线程邮件接收线程用户信息模型账号信息模型启动SMTP模型BASE64加密未读邮件模型邮件接收保存方法邮件保存到文件图31系统的总体模型图图31是该客户端的系统架构图,图中包含了六个图形用户界面,两个邮件接收和发送线程,以及一些相关的辅助方法和数据模型。其中,各个图形用户界面是为了方便用户使用该客户端而设计;用户鉴权和客户端配置信息,是主界面在加载时,针对每个特定的用户,加载其个人设置;用户信息模型和账户信息模型用来对用户进行登录验证,设置邮箱账户时的信息进行封装。发送邮件线程等待来自客户的发送请求,收到请求后,首先根据SMTP模型和用户输入信息,封装一个SMTP消息对象;接着对用户账户和密码进行BASE64加密;最后将封装好的信息对象,交由发送邮件方法进行发送;邮件接收线程是客户端加载成功后,就开始监听25端口,当有邮件信息发西安建筑科技大学课程设计(论文)第8页共43页送到来时,将接收到的信息封装到一个未读邮件模型中去,然后将该模型传递给邮件接收和保存方法,该方法将会对邮件在硬盘中进行保存,并更新客户端配置信息中得未读邮件信息。32系统模块的划分按照本系统的总体功能划分,可以将这个电子邮件客户端分成5大模块,首先是登录模块,作为验证需要;其次是接收邮件模块,该模块负责邮件的接收,再次是发送模块,该模块负责该对方发送邮件;接着是邮件处理模块,该模块负责邮件的阅读、保存等操作;然后是邮件账户的管理,该操作负责设置客户端对公网的身份标识。图32给出了本系统的模块体系电子邮件客户端登录模块接收邮件模块发送邮件模块邮件账户管理邮件处理模块图32系统模块体系图西安建筑科技大学课程设计(论文)第9页共43页第4章详细设计41接收邮件模块接收邮件模块主要由接收邮件线程监听端口完成对邮件的接收并对其进行保存和刷新主界面,包括下图中的几个部分。(1)接收邮件线程。一个邮件系统最基本的功能是能够接受发送的邮件。为了可以同时接收多个邮件,保持并发性,本设计使用JAVA多线程的功能,设计一个可以多线程的接收邮件线程;(2)保存邮件。接收到对方的邮件以后,必须先对邮件进行保存备份,然后将邮件信息封装到未读邮件模型后,再显示出来,可以隐去一些不必要的内容,只显示邮件关键信息给用户;(3)刷新界面。当客户端收到一个邮件后,必须能够实时刷新主界面以提醒用户。接收邮件和附件模块的图示接收邮件模块接收邮件保存邮件刷新界面图41接收邮件和附件模块图42发送和回复邮件模块发送邮件模块主要由发送邮件线程文件完成,包括图中的几个部分。(1)编写新邮件。该部分也是电子邮件系统中最基本的功能。(2)发送新邮件。在编写完成新邮件后,电机该功能将邮件内容发送给对方。发送邮件模块的图示西安建筑科技大学课程设计(论文)第10页共43页发送邮件模块编写新邮件发送新邮件图42发送邮件模块图43邮件处理模块邮件处理模块主要对邮件进行阅读和保存功能,包括图中的几个部分。(1)显示邮件内容,新建一个界面显示用户选择的邮件内容。(2)保存邮件。在接收到邮件的同时,默认自动保存邮件。(3)显示错误信息。在出现一些登录错误,删除错误,发送错误时,将显示不同的错误信息提示用户。邮件处理模块的图示邮件处理模块显示邮件内容显示错误信息自动保存邮件图43邮件处理模块图44界面实现的流程图如上所述,本设计的邮件客户端需要六个不同的界面,都采用JAVASWING技术实现,JAVASWING提供丰富的图形组件和多样的布局方式,以及事件注册处理机制,在本设计中使用JAVASWING技术实现这些界面,其流程如图44所示西安建筑科技大学课程设计(论文)第11页共43页开始结束声明控件对象声明面板容器对象初始化面板容器对象并设置布局方式初始化控件对象并注册事件将控件添加到面板对象中图44界面实现流程图其中的部分代码如下BUTTONPANELADDNEWBUTTONBUTTONPANELADDRECBUTTONBUTTONPANELADDRECBOXBUTTONBUTTONPANELADDDRAFTBUTTONBUTTONPANELADDSETBUTTONJFRAMESETBOUNDS0,0,SCREEN_WIDTH3/4,SCREEN_HEIGHT3/5JFRAMESETBACKGROUNDCOLORWHITEJFRAMEADDBUTTONPANEL,NEWBORDERLAYOUTWESTJFRAMEADDTAB,NEWBORDERLAYOUTCENTERJFRAMESETVISIBLETRUE45邮件发送过程的流程图邮件发送过程需要使用SMTP协议,因此在本设计中,将SMTP协议的各个字段封装到了一个对象中去,便于维护和管理,邮件发送的实现过程如图45所示,其部分实现代码如下STRINGDESTIPGETEMAILNAMEINFOGETUSERNAMEUSERNAMEREPLACE“_“,“SOCKETNEWSOCKETDESTIP,PORTBUFFEREDREADERBRGETREADERSOCKETPRINTWRITERPWGETWRITERSOCKETSENDANDRECEIVENULL,BR,PW西安建筑科技大学课程设计(论文)第12页共43页IFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“连接邮件服务器失败“,NULL,0RETURNSENDANDRECEIVESMTPGETMAIL,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETREPT,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETDATA,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVEMESSAGEGETFROM“RN“MESSAGEGETTO“RN“MESSAGEGETDATA,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“邮件发送失败“,NULL,0RETURNSENDANDRECEIVESMTPGETQUIT,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“邮件发送成功“,NULL,0RETURN开始结束启动一个发送线程填充SMTP对象获得对方邮箱服务器地址对邮箱账号和密码进行BASE64加密新建SOCKET对象,连接对方邮箱服务器的25端口是否成功邮件发送过程错误提示对话框是否填充MESSAGE对象图45邮件发送过程其中邮件发送过程分为如下几步1、发送HELO命令,并等到回复,若回复争取,则发送下一个命令,西安建筑科技大学课程设计(论文)第13页共43页若失败停止发送,下面步骤皆是如此处理;2、发送EHLO命令;3、发送AUTHLOGIN命令,进行用户名和密码的鉴权请求;4、发送BASE64加密后的用户名;5、发送BASE6加密后的密码;6、若鉴权成功发送MAILFROM命令;7、发送RCPTTO命令,告知服务器邮件的接收方;8、发送DATA命令,告知服务器接下来要发送邮件内容;9、在本设计中邮件内容被封装到一个MESSAGE模型中,在本步中,发送的是该模型的一个对象;10、在收到成功响应后,发送“”结束发送过程。46邮件接收流程邮件接收流程是该设计的基本功能之一,其使用的仍是SMTP协议流程,在本设计中,针对收到的邮件会将其封装到一个未读邮件的对象中去,具体流程如图46所示,其部分代码如下所示开始结束启动接收邮件线程收到对方请求,发送收到响应码接收对方邮件信息建立SOCKET连接发送响应给对方是否成功保存邮件到本地磁盘错误提示对话框是否刷新主界面图46邮件接收流程西安建筑科技大学课程设计(论文)第14页共43页WHILEREQUESTBRREADLINENULLIFREQUESTCONTAINS“MAILFROM“PWPRINTLN“250SENDEROK“CONTINUEELSEIFISMAILFROMPWPRINTLN“500COMMANDNOTRECOGNIZED“CONTINUEIFREQUESTCONTAINS“RCPTTO“PWPRINTLN“250RECIPIENTOK“CONTINUEELSEIFISRCPTTOPWPRINTLN“500COMMANDNOTRECOGNIZED“CONTINUEIFREQUESTCONTAINS“DATA“ISDATATRUEPWPRINTLN“354ENTERCONTENT“CONTINUEELSEIFISDATAPWPRINTLN“500COMMANDNOTRECOGNIZED“CONTINUEIFISDATASTRINGBUFFERAPPENDREQUESTSTRINGBUFFERAPPEND“IFSTRINGBUFFERTOSTRINGENDSWITH“ISMESSAGETRUECONTENTSTRINGBUFFERTOSTRINGSUBSTRING0,STRINGBUFFERTOSTRINGLENGTH1SYSTEMOUTPRINTLN“CONTENTIS“CONTENTPWPRINTLN“250OK“IFREQUESTCONTAINS“QUIT“PWPRINTLN“221“GETEMAILNAMEINFOGETHOSTNAMEE_MAILCONFIGGETEMAILCFGGETEMAILNAMERETURNPRIVATEPRINTWRITERGETWRITERSOCKETSOCKETTHROWSIOEXCEPTION/TODOAUTOGENERATEDMETHODSTUBOUTPUTSTREAMOUTSOCKETGETOUTPUTSTREAMRETURNNEWPRINTWRITEROUT,TRUE西安建筑科技大学课程设计(论文)第15页共43页PRIVATEBUFFEREDREADERGETREADERSOCKETSOCKETINPUTSTREAMISNULLTRYISSOCKETGETINPUTSTREAMCATCHIOEXCEPTIONEEPRINTSTACKTRACEBUFFEREDREADERBRNEWBUFFEREDREADERNEWINPUTSTREAMREADERISRETURNBR47用户鉴权和客户端配置信息流程该模块是在主界面加载前,针对不同的用户,加载相应的设置,其包含保存用户信息流程,更改用户信息流程,保存邮箱账户信息流程,更改邮箱账户信息流程,获取收到的邮件信息流程,设置邮件是否已读流程。其中这三组流程处理方式一致,获取和更改用户信息流程如图47,48所示,部分处理代码如下。开始结束读取本地XML用户信息文件使用JDOM解析该文件返回用户信息配置模型对象将解析到的信息填充到用户信息配置模型中去开始结束读取本地XML用户信息文件使用JDOM解析该文件保存更改到本地XML文件使用传入的用户信息配置模型对象相应字段设置解析到的文件字段47获取用户信息流程48更改用户信息流程图PROTECTEDUSERGETUSERPROFILEUSERUSERNEWUSERSAXBUILDERBUILDERNEWSAXBUILDERTRYDOCUMENTDOCBUILDERBUILDUSERFILEELEMENTROOTELEMENTDOCGETROOTELEMENT西安建筑科技大学课程设计(论文)第16页共43页STRINGUSERNAMEROOTELEMENTGETCHILDUSERNAMEGETTEXTUSERSETUSERNAMEUSERNAMESTRINGPASSWORDROOTELEMENTGETCHILDPWDGETTEXTUSERSETPASSWORDPASSWORDBOOLEANLOGINNEWBOOLEANROOTELEMENTGETCHILDLOGINGETTEXTUSERSETLOGINLOGINCATCHEXCEPTIONEEPRINTSTACKTRACERETURNUSERPROTECTEDVOIDSETUSERPROFILEUSERUSERSAXBUILDERBUILDERNEWSAXBUILDERTRYDOCUMENTDOCBUILDERBUILDUSERFILEELEMENTROOTELEMENTDOCGETROOTELEMENTROOTELEMENTGETCHILDUSERNAMESETTEXTUSERGETUSERNAMEROOTELEMENTGETCHILDPWDSETTEXTUSERGETPASSWORDROOTELEMENTGETCHILDLOGINSETTEXTSTRINGVALUEOFUSERISLOGINXMLOUTPUTTERFMTNEWXMLOUTPUTTERFILEWRITERWRITERNEWFILEWRITERUSERFILEORGJDOMOUTPUTFORMATFORGJDOMOUTPUTFORMATGETPRETTYFORMATFMTSETFORMATFFMTOUTPUTDOC,WRITERWRITERCLOSECATCHEXCEPTIONEEPRINTSTACKTRACE48阅读邮件流程邮件阅读是邮件系统的最基本功能之一,在本设计中,邮件阅读流程如图49所示,其代码如下STRINGISREADSTRINGVALUEOFARRAYGETINDEX1ISREADSTRINGNAMEARRAYGETINDEX1GETNAMEINTLENGTHNAMELENGTHINTSINDEXNAMEINDEXOF“_“USERNAMESUBSTRING0,SINDEXSTRINGRESTNAMESUBSTRINGSINDEX1,LENGTHINTINDEX2RESTINDEXOF“_“TOPICRESTSUBSTRING0,INDEX2FILEFILENEWFILENAME“TXT“西安建筑科技大学课程设计(论文)第17页共43页INNEWDATAINPUTSTREAMNEWBUFFEREDINPUTSTREAMNEWFILEINPUTSTREAMFILESTRINGBUFFERSBNEWSTRINGBUFFERSTRINGSTRINGNULLWHILESTRINGINREADLINENULLSBAPPENDSTRINGSTRINGSBTOSTRINGBASEMAINSETUNREADMAILUSERSHOWCONTENTSTRING开始结束读取本地XML未读邮件信息文件使用JDOM遍历解析该文件遍历列表获取模型数据,并设置到相应控件显示将解析到的结果保存到未读邮件模型中将邮件模型添加到一个列表图49邮件阅读流程西安建筑科技大学课程设计(论文)第18页共43页第5章系统功能测试51登陆界面及邮箱账户设置界面测试界面模块主要使用JAVASWING技术完成,其中包括主界面,登陆界面,设置账户界面,阅读邮件界面,发送邮件界面等几部分。登陆选择指定邮件用户和密码。在本系统中提供了一个用户名和密码均为ADMIN的默认用户进行登录。使用默认用户登录后,用户可以更改登录账户。必须使用正确的用户名和密码才可以登录,不然无法进入客户端。登录界面的效果图图51登录界面设置账户界面用来标识对公网的客户端身份,只有设置正确存在的公网账户才可以使用本客户端对外发送邮件。设置账户界面效果图图52邮箱账户设置界面52主界面测试主界面是客户端与用户交互的直接体现,它调用相应的界面和方法响应用户的操作,主界面见图53;西安建筑科技大学课程设计(论文)第19页共43页图53主界面53发送界面与收件箱界面测试发送界面是发送邮件时的操作控制界面,主要有设置接收人,抄送,密送,邮件主题,邮件内容等5部分组成,发送界面见图54图54发送邮件界面西安建筑科技大学课程设计(论文)第20页共43页收件箱界面是登陆客户端时由邮箱配置方法将收到邮件信息设置在它下面,在主界面选择它后,即可查看客户端收到的邮件信息情况,收件箱界面见图55;图55收件箱界面54阅读邮件界面测试阅读邮件界面是根据在收件箱界面的列表,选择一条未读邮件后,进行未读邮件内容的显示,阅读邮件界面见图56;图56阅读邮件界面西安建筑科技大学课程设计(论文)第21页共43页第6章结论与展望61结论系统主要实施对于邮件系统中邮件及邮件夹的管理。系统主要实现了对于邮件的发送、接收、删除、邮件夹的管理等功能。62展望系统开发是需要一个不断完善的过程,通过不断测试,检测出更多问题,并不断完善。然而由于时间的缘故,并不能进行逐步测试,因此仍然有很多地方需要改进。现在归纳如下有时候邮件太长,或者是表格、WORD文档,一正文方式发送不太方便,这样可以引用一个附件功能。及那个这些表格或WORD文档以附件的形式上传,然后发送。在扩充一下,提供可以发送多个邮件的功能。但本系统未实现此功能。西安建筑科技大学课程设计(论文)第22页共43页致谢感谢我的指导老师彭晓天老师,本次论文的每个细节和每个数据,都离不开他的细心指导。无论在理论上还是在实践中,彭老师都给了我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助。另外,在系统开发过程中同学也给予我很大的帮助,帮助解决了不少的难点,使得系统能及时开发完成,这里一并表示感谢。在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有许多可敬的师长、同学、朋友给了我无私的帮助,在这里请接受我诚挚的谢意西安建筑科技大学课程设计(论文)第23页共43页参考文献1张尧学等编著,计算机网络与INTERNET教程(第三版)北京清华大学出版社,20012COMPUTERNETWORKS,VERSIONPRENTICEHALLINTERNATIONAL,INC1998(计算机网络第四版,清华大学出版社影印版,2001)。3INTERNETWORKINGWITHTCP/IP(VOL1,VOL2,VOL3)PRENTICEHALLINTERNATIONAL,INC1995(TCP/IP网络互连技术卷1、卷2、卷3,清华大学出版社影印版,1998)。4谢希仁主编,计算机网络第三版,北京电子工业出版社,2000。西安建筑科技大学课程设计(论文)第24页共43页附录1、主界面主要代码PUBLICCLASSMAINUIEXTENDSBASEMAINSUPPRESSWARNINGS“UNUSED“PRIVATESTATICSTRINGTITLEPRIVATEUSERUSERPRIVATEBOOLEANISFIRSTLOGINFALSEPUBLICSTATICJFRAMEJFRAMEPUBLICSTATICFINALSTRINGWELCOME_WORD01“欢迎使用邮件客户端“,WELCOME_WORD02“作者党西娇“,WELCOME_WORD03“班级通信901“PUBLICSTATICFINALSTRINGNEW“写信“,RECEIVED“收信“,RECBOX“收件箱“,DRAFT“草稿“,SET“设置“PUBLICSTATICFINALINTBUTTON_NUMBER20,BUTTON_WIDTH30,BUTTON_HEIGHT20,BUTTON_START_POINT0PUBLICSTATICINTDRAFT_EMAIL0PUBLICSTATICJBUTTONNEWBUTTON,RECBUTTON,RECBOXBUTTON,CONTACTBUTTON,UNREADBUTTON,RAFTBUTTON,SENDBUTTON,DELETEBUTTON,RABISHBOXBUTTON,SETBUTTONPUBLICSTATICJTABBEDPANETABPUBLICSTATICJPANELBUTTONPANEL,SENDPANELPUBLICCOLORCOLORSTYLENEWCOLORCOLORBLACK,COLORBLUE,COLORCYAN,COLORDARK_GRAY,COLORGRAY,COLORGREEN,COLORLIGHT_GRAY,COLORMAGENTA,COLORORANGE,COLORPINK,COLORYELLOW,COLORREDPUBLICJLABELSTART01,START02,START03PUBLICJPANELLABELPANELPUBLICSTATICFINALSTRINGDEFAULT_FONT“宋体“PUBLICSTATICINTUNREADNUMBERGETUNREADCOUNTERBASEMAINGETUNREADMAILNUMBERPUBLICSTATICINTDELETEDNUMBER1PRIVATESTATICBOOLEANFLAGFALSEPRIVATEJPANELTEMPPANELPUBLICMAINUISTRINGTITLETHISTITLETITLEPUBLICVOIDSTARTINITBUTTONINITTABLE西安建筑科技大学课程设计(论文)第25页共43页USERGETUSERPROFILEISFIRSTLOGINUSERISLOGINSHOWISFIRSTLOGINPUBLICVOIDINITBUTTON/TODOAUTOGENERATEDMETHODSTUBNEWBUTTONNEWJBUTTONNEWNEWBUTTONSETCONTENTAREAFILLEDFALSENEWBUTTONSETBACKGROUNDCOLORWHITENEWBUTTONSETFOREGROUNDCOLORBLUENEWBUTTONADDACTIONLISTENERLISTENERNEWBUTTONSETBOUNDSBUTTON_START_POINT,BUTTON_START_POINT,BUTTON_WIDTH,BUTTON_HEIGHTBUTTONPANELNEWJPANELBUTTONPANELSETBACKGROUNDCOLORWHITEBUTTONPANELSETLAYOUTNEWGRIDLAYOUTBUTTON_NUMBER,0,0,0BUTTONPANELADDNEWBUTTONBUTTONPANELADDRECBUTTONBUTTONPANELADDRECBOXBUTTONBUTTONPANELADDDRAFTBUTTONBUTTONPANELADDSETBUTTONPUBLICVOIDINITTABLE/TODOAUTOGENERATEDMETHODSTUBTABNEWJTABBEDPANEJTABBEDPANETOPTABSETBACKGROUNDCOLORWHITETABADDMOUSELISTENERMLISTENERSTART01NEWJLABELSTART01SETBACKGROUNDCOLORWHITESTART01SETTEXTWELCOME_WORD01START01SETHORIZONTALALIGNMENTSWINGCONSTANTSCENTERLABELPANELNEWJPANELLABELPANELSETBACKGROUNDCOLORWHITELABELPANELSETLAYOUTNEWGRIDLAYOUT3,0,4,4LABELPANELADDSTART01LABELPANELADDSTART02LABELPANELADDSTART03TABADD“主页“,LABELPANELNEWTHREADNEWCHANGECOLORSTARTSUPPRESSWARNINGS“STATICACCESS“西安建筑科技大学课程设计(论文)第26页共43页PUBLICVOIDSHOWBOOLEANISFIRSTLOGINJFRAMENEWJFRAMEJFRAMESETBOUNDS0,0,SCREEN_WIDTH3/4,SCREEN_HEIGHT3/5JFRAMESETBACKGROUNDCOLORWHITEJFRAMEADDBUTTONPANEL,NEWBORDERLAYOUTWESTJFRAMEADDTAB,NEWBORDERLAYOUTCENTERJFRAMESETVISIBLETRUEIFISFIRSTLOGINJFRAMESETFOCUSABLEFALSEJFRAMESETENABLEDFALSENEWLOGIN_UINEWMAINUIJFRAMESETDEFAULTCLOSEOPERATIONJFRAMEEXIT_ON_CLOSERECEIVEEMAILISRUNNINGFALSEPRIVATEACTIONLISTENERLISTENERNEWACTIONLISTENEROVERRIDEPUBLICVOIDACTIONPERFORMEDACTIONEVENTE/TODOAUTOGENERATEDMETHODSTUBIFEGETACTIONCOMMANDEQUALSNEWSENDUISENDUINEWSENDUINEWMAINUISENDPANELSENDUIINITSENDUITABADDNEW,SENDPANELTABSETSELECTEDCOMPONENTTEMPPANELELSEIFEGETACTIONCOMMANDEQUALSSETNEWSETUINEWMAINUIELSEIFEGETACTIONCOMMANDCONTAINSRECBOX|EGETACTIONCOMMANDEQUALSRECEIVEDIFFLAGRECEIVEDUIRECEIVEUINEWRECEIVEDUINEWMAINUITEMPPANELRECEIVEUIINITRECVUITABADDRECBOX,TEMPPANELTABSETSELECTEDCOMPONENTTEMPPANELFLAGTRUEELSETABSETSELECTEDCOMPONENTTEMPPANELPRIVATEMOUSELISTENERMLISTENERNEWMOUSELISTENERPUBLICVOIDMOUSECLICKEDMOUSEEVENTE/TODOAUTOGENERATEDMETHODSTUBIFEGETCLICKCOUNT2IFTABGETSELECTEDCOMPONENTLABELPANELIFTABGETSELECTEDCOMPONENTEQUALSTEMPPANELFLAGFALSETABREMOVETABGETSELECTEDCOMPONENT西安建筑科技大学课程设计(论文)第27页共43页PUBLICSTATICVOIDMAINSTRINGARGS/TODOAUTOGENERATEDMETHODSTUBNEWTHREADNEWRECEIVEEMAILSTARTNEWMAINUI“E_MAINCLIENT“STARTCLASSCHANGECOLORIMPLEMENTSRUNNABLEPUBLICVOIDRUNINTCOLORLENGTHCOLORSTYLELENGTHFORINTJ0JGETUNREADMAILNUMBERARRAYLISTARRAYNEWARRAYLISTINTINDEX0SAXBUILDERBUILDERNEWSAXBUILDERTRY/类似GETUSERPROFILECATCHEXCEPTIONEPROTECTEDSTATICINTGETUNREADCOUNTERARRAYLISTARRAYLISTINTRESULT0INTLENGTHARRAYLISTSIZESYSTEMOUTPRINTLNLENGTHFORINTJ0J2SBAPPENDBASE64ENCODECHARSTEMP01SBAPPENDBASE64ENCODECHARSTEMP01SBAPPENDBASE64ENCODECHARSTEMP02SBAPPENDBASE64ENCODECHARSTEMP01西安建筑科技大学课程设计(论文)第32页共43页SBAPPENDBASE64ENCODECHARSTEMP02SBAPPENDBASE64ENCODECHARSTEMP03RETURNSBTOSTRING5、发送邮件方法PACKAGECOMDANGXIJIAOEMAILMETHODPUBLICCLASSSENDPROCESSPRIVATESTATICFINALSTRINGSUCCESS“SUCCESS“,FAILED“FAILED“,PREFIX“SMTP“PRIVATESTATICFINALINTPORT25PRIVATESMTPSMTPPRIVATEEMAIL_MESSAGEMESSAGEPRIVATESTRINGSENDRESULTNULL,HOSTNAME,USERNAMEPROTECTEDSOCKETSOCKETNULLPUBLICSENDPROCESSSTRINGUSERNAME,SMTPSMTP,EMAIL_MESSAGEMESSAGE,STRINGHOSTNAMETHISUSERNAMEUSERNAMETHISSMTPSMTPTHISMESSAGEMESSAGETHISHOSTNAMEHOSTNAMEPUBLICVOIDSTART_SENDSTRINGCHOICEGETEMAILNAMEINFOGETHOSTNAMEUSERNAMEIFCHOICEEQUALS“MYDOMAINCOM“SEND_INNER_EMAILELSESEND_OUTTER_EMAILPRIVATEVOIDSEND_INNER_EMAIL/TODOAUTOGENERATEDMETHODSTUBTRYSTRINGDESTIPGETEMAILNAMEINFOGETUSERNAMEUSERNAMEREPLACE“_“,“SOCKETNEWSOCKETDESTIP,PORTBUFFEREDREADERBRGETREADERSOCKETPRINTWRITERPWGETWRITERSOCKETSENDANDRECEIVENULL,BR,PWIFSENDRESULTEQUALSFAILED西安建筑科技大学课程设计(论文)第33页共43页JOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“连接邮件服务器失败“,NULL,0RETURNSENDANDRECEIVESMTPGETMAIL,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETREPT,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETDATA,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVEMESSAGEGETFROM“RN“MESSAGEGETTO“RN“MESSAGEGETDATA,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“邮件发送失败“,NULL,0RETURNSENDANDRECEIVESMTPGETQUIT,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“邮件发送成功“,NULL,0RETURNCATCHUNKNOWNHOSTEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACECATCHIOEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACEFINALLYTRYIFSOCKETNULLSOCKETCLOSECATCHIOEXCEPTIONE/TODOAUTOGENERATEDCATCHBLOCKEPRINTSTACKTRACE西安建筑科技大学课程设计(论文)第34页共43页PRIVATEVOIDSEND_OUTTER_EMAILTRYSOCKETNEWSOCKETPREFIXHOSTNAME,PORTBUFFEREDREADERBRGETREADERSOCKETPRINTWRITERPWGETWRITERSOCKETSENDANDRECEIVENULL,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“连接邮件服务器失败“,NULL,0RETURNSENDANDRECEIVESMTPGETHELO,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETAUTH,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETUSERNAME,BR,PWIFSENDRESULTEQUALSFAILEDRETURNSENDANDRECEIVESMTPGETPASSWORD,BR,PWIFSENDRESULTEQUALSFAILEDJOPTIONPANESHOWMESSAGEDIALOGMAINUIJFRAME,“用户名或密码错误“,NULL,0RETURNSENDANDRECEIVESMTPGETMAIL,BR,PW/以下同SEND_INNER_EMAILPRIVATEVOIDSENDANDRECEIVESTRINGSTRING,BUFFEREDREADERBR,PRINTWRITERPWTHROWSIOEXCEPTIONSTRINGBUFFERSTRINGBUFFERNEWSTRINGBUFFERSTRINGRESPONSENULLIFSTRINGNULLPWPRINTLNSTRINGWHILERESPONSEB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年夫妻共同财产分割离婚协议范本
- 2025年房屋抵押贷款与房地产评估服务合同样本
- 2025版外聘讲师企业执行力提升合作合同协议书
- 2025年度品牌形象广告设计与施工一体化合同
- 2025版三轮车车身涂装环保材料供应合同
- 2025版燃料油期货交易合同范本及风险控制细则
- 2025版新能源产业入股合同范本
- 2025版高效节水灌溉项目施工总承包合同范本
- 贵州省印江土家族苗族自治县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版全新科技项目居间合作协议
- 500kV变电站屋外架构组立吊装工程施工安全技术交底
- 典范英语7-2中英文对照翻译Noisy Neighbours
- (完整版)污水处理站施工方案
- 排尿评估及异常护理
- 硅锰合金的冶炼要点
- 人教版七年级初一数学:期中考试初一数学试卷及答案
- PDCA护理质量持续改进提高护士交接班质量
- 减速机整机检验报告修改版
- 叉车日常检查维护记录
- DID双重差分法
- 《建筑装饰构造》全套教案(完整版)
评论
0/150
提交评论