《【精品毕业论文设计】电子邮件系统毕业论文.doc》由会员分享,可在线阅读,更多相关《【精品毕业论文设计】电子邮件系统毕业论文.doc(27页珍藏版)》请在三一办公上搜索。
1、【精品毕业论文设计】电子邮件系统毕业论文 青岛理工大学 毕 业 设 计论 文题目 基于JavaMail的电子邮件系统的设计与实现学生姓名 许晨祎 指导教师 马国兵 计算机工程 学院网络工程专业061班 年 月 日摘 要本文主要阐述了基于javamail电子邮件系统的设计与实现较为系统地介绍了电子邮件用户的登录收发电子邮件邮件目录操作邮件群发通讯录建立与维护等功能邮件服务器按照提供的服务类型可以分为发送邮件服务器简称发送服务器和接收邮件服务器简称接收服务器发送邮件服务器使用邮件发送协议现在常用的是SMTP所以通常发送邮件服务器也称为SMTP服务器接收邮件服务器使用接收邮件协议常用的有POP3协议
2、和IMAP协议所以通常接收邮件服务器也称为POP3服务器或IMAP服务器本系统基于JavaMial API采用BS设计结构使用Apache Tomcat做为WEB服务器和JSP Servlet的容器JDK中并不包含JavaMail API为了开发JavaMail应用程序需要从SUN公司的网站下载JavaMail API及其实现的类库该类库由两个JAR文件组成 mailjar和activationjar本系统分析中给出了电子邮件服务器和电子邮件客户端的简介同时给出了本次试验中客户端的主要功能和总体框图JavaMail电子邮件服务器电子邮件客户端ABSTRACTThis paper mainly
3、discusses javamail E-mail system based on the design realization and systematically introduces the email login email mail E-mail group operating directory contacts the establishment and the maintenance etc Function Mail server according to provide service type can be divided into the email server re
4、ferred to send and receive E-mail servers server hereinafter referred to as the receiving server Send mail server use email to send agreement now commonly used is so often send e-mails SMTP server is also called SMTP server Receiving mail server use E-mail agreement commonly have POP3 and IMAP proto
5、col so usually receive E-mail server also called POP3 server or IMAP serverThis system based on BS JavaMial API using structure design Use a WEB server and I can with Apache Tomcat Servlet JSP containers Does not contain JavaMail JDK API In order to develop JavaMail applications need to download fro
6、m the web from JavaMail API and realize the class library library consists of two components the JAR file activation and E-mail J JAR JARThis system are analyzed in the email server and email client introduction is given and the main functions of the client and the overall diagramKEY WORDS JavaMail
7、E-mail server Email client 目 录第1章 前 言111 概述112 国内现状113 系统特点1第2章 需求分析421 产品可行性分析422 产品功能需求分析6221 系统总体功能6222电子邮件系统收发邮件的过程6第3章 总体设计831 本系统的总体分析模型类图832 系统模块的划分9第4章 详细设计1041 登录模块1042 接收邮件和附件模块1143 发送和回复邮件模块1144 邮件处理模块1245 邮件文件夹管理模块12第5章 系统功能编码的实现1351 服务器的安装和配置1352 客户端的实现14第6章 系统功能测试1961 登录和注销模块的测试19第7章 结
8、论与展望3071 结论3072 展望30致谢31参考文献32第1章 前 言11 概述电子邮件简称E-mail又称电子信箱电子邮政它是一种用电子手段提供信息交换的通信方式它是全球多种网络上使用最普遍的一项服务这种非交互式的通信加速了信息的交流及数据传送它是一个简易快速的方法通过连接全世界的Internet实现各类信号的传送接收存贮等处理将邮件送到世界的各个角落到目前为止可以说电子邮件是Internet资源使用最多的一种服务E-mail不止局限于信件的传递还可用来传递文件声音及图形图像等不同类型的信息电子邮件不是一种终端到终端的服务是被称为存贮转发式服务这正是电子信箱系统的核心利用存贮转发可进行非
9、实时通信属异步通信方式即信件发送者可随时随地发送邮件不要求接收者同时在场即使对方现在不在扔可将邮件立刻送到对方的信箱内且存储在对方的电子邮箱中接收者可在他认为方便的时候读取信件不受时空限制12 国内现状电子邮件E-mail是Internet最基本的和最重要的服务之一据统计Internet上百分之三十以上的业务量是电子邮件由于我国的通讯基础设施较差网络速度较慢因而与Internet其它功能如FTPNEWS等相比电子邮件服务具有更大的实用性CINNIC中国互联网络发展状况统计报告中指出7165的中国用户最常使用的网络服务就是电子邮件这个比例远远高于搜索引5040和软件上传或下载服务4416等其他服
10、务13 系统特点本系统分析中给出了电子邮件服务器和电子邮件客户端的简介同时给出了本次试验中客户端的主要功能和总体框图邮件服务器按照提供的服务类型可以分为发送邮件服务器简称发送服务器和接收邮件服务器简称接收服务器发送邮件服务器使用邮件发送协议现在常用的是SMTP所以通常发送邮件服务器也称为SMTP服务器接收邮件服务器使用接收邮件协议常用的有POP3协议和IMAP协议所以通常接收邮件服务器也称为POP3服务器或IMAP服务器SMTPSimple Mail Transfer Protocol即简单邮件传输协议是Internet传送E-mail的基本协议也是TCPIP协议组的成员SMTP协议解决邮件系
11、统如何通过一条链路把邮件从一台机器传送到另一台机器上的问题SMTP协议的特点是具有良好的可伸缩性这也是它成功的关键它既适用于广域网也适用于局域网SMTP协议由于非常简单使得它得到了广泛的运用在Internet上能够发送邮件的服务器几乎都支持SMTP协议POP3Post Office Protocol 3即邮局协议第3版是 Internet接收邮件的基本协议也是TCPIP协议组的成员RFC1939描述了POP3协议网址为httpietforgrfcrfc1939txtPOP3既允许接收服务器向邮件用户发送邮件也可以接收来自SMTP服务器的邮件邮件客户端软件会与POP3服务器交互下载由POP3服务
12、器接收到的邮件基于POP3协议的邮件系统能提供快速经济和方便的邮件接收服务深受用户的青睐IMAPInternet Message Access Protocol即互联网消息访问协议是一种功能比POP3更强大的新的接收邮件协议目前最新的IMAP协议版本为IMAP4RFC2060描述了IMAP4网址为httpietforgrfcrfc2060txtIMAP4与POP3协议一样提供了方便的下载邮件服务允许用户在脱机状态下阅读已经下载到本地硬盘的邮件但IMAP4的功能远远不只这些它还具有以下功能 摘要浏览邮件的功能选择性下载附件的功能鼓励用户把邮件一直存储在邮件服务器上允许用户把远程邮件服务器上的邮箱
13、作为信息存储工具MIMEMultipurpose Internet Mail Extensions多用途Internet邮件扩充标准不是邮件传输协议而是对邮件格式所作的规范RFC2045RFC2046和RFC2047对MIME作了描述MIME是对RFC822的扩充RFC822规定了内容只包括采用ASCII编码的纯文本的邮件的格式而MIME允许在邮件中包含附件整个电子邮件系统的工作过程及一些涉及到的协议如下图所示图21 电子邮件系统工作过程图电子邮件系统包含电子邮件服务器端和电子邮件客户端SUN公司制定了JavaMail API它封装了按照各种邮件通信协议如IMAPPOP3和SMTP与邮件服务器
14、通信的细节为Java应用程序提供了收发电子邮件的公共接口参见下图JavaMail API主要位于javaxmail包和javaxmailinternet中下图为其中主要类的类框图图23 程序中主要类的类框图1 javaxmailSession类表示邮件会话是JavaMail API的最高层入口类2javaxmailStore类表示接收邮件服务器上的注册用户的存储空间通过Store类的getFolder 方法可以访问用户的特定邮件夹 3 javaxmailFolder类代表邮件夹4 javaxmailMessage类代表电子邮件5 javaxmailAddress类代表邮件地址6 javaxma
15、ilTransport类根据指定的邮件发送协议通常是 SMTP通过指定的邮件发送服务器来发送邮件图24 系统总体功能图222电子邮件系统收发邮件的过程图25 收发邮件过程图发信人调用用户代理来编辑要发送的邮件用户代理用 SMTP 把邮件传送给发送端邮件服务器发送端邮件服务器将邮件放入邮件缓存队列中等待发送运行在发送端邮件服务器的 SMTP 客户进程发现在邮件缓存中有待发送的邮件就向运行在接收端邮件服务器的 SMTP 服务器进程发起 TCP 连接的建立TCP 连接建立后SMTP 客户进程开始向远程的 SMTP 服务器进程发送邮件当所有的待发送邮件发完了SMTP 就关闭所建立的 TCP 连接运行在
16、接收端邮件服务器中的 SMTP 服务器进程收到邮件后将邮件放入收信人的用户邮箱中等待收信人在方便时进行读取收信人在打算收信时调用用户代理使用 POP3或 IMAP协议将自己的邮件从接收端邮件服务器的用户邮箱中的取回如果邮箱中有来信的话本系统的总体分析模型类图图31 系统的总体分析模型图该类图中包含了两个类PMessage和MailUserData其中PMessage类对Message类的重新封装提供更方便的读取邮件信息的方法例如在Message类中读取邮件地址的方法如getTo 方法返回Address类型如果要把它显示到网页上必须把Address数组转化为对应的字符串PMessage的构造方法
17、PMessage对Message数据重新封装JSP网页调用PMessage的getTo方法可以直接获得字符串类型的地址MailUserData类用来存放用户的相关信息还有对邮件文件夹操作的一些方法的定义还有邮件管理的一些操作的定义例如发送邮件删除邮件等系统模块的划分按照本系统的总体功能划分可以将这个电子邮件系统分成5大模块首先是登录模块作为验证需要其次是接收邮件和附件模块该模块负责邮件的接收有的是以附件形式接收的再次是发送和回复模块该模块负责该对方发送邮件有的还是以附件形式发送的接着是邮件处理模块该模块负责邮件的阅读保存和删除等操作然后是邮件文件夹的管理该操作负责邮件文件夹的新建重命名和删除等
18、操作下面累出了本系统的模块体系如图登录模块登录模块主要有loginjsp完成其中包括下图中的几部分选择登录服务器本系统采用了MerakMailSErvler公司提供的Mail服务器使用版本选择指定邮件地址和密码在本系统中有所提供的Mail服务器创建了2个账户进行登录必须选用正确的邮件地址和密码才可以登录不然会报错登录模块的图示接收邮件和附件模块接收邮件和附件模块主要由showmessagejsp文件完成包括下图中的几个部分接收邮件一个邮件系统最基本的功能是能够接受发送的邮件保存附件如果对方是以附件的形式发送邮件给用户那么用户在接收邮件时必须先下载邮件将其保存到本地机之后才能阅读接收邮件和附件模
19、块的图示发送和回复邮件模块发送和回复邮件模块主要由composejsp文件完成包括图中的几个部分编写新邮件该部分也是电子邮件系统中最基本的功能上传附件在编写邮件时邮件内容可以以附件的形式发送这样就需要先将附件上传到服务器然后在发送给对方 发送和回复邮件模块的图示邮件处理模块邮件处理模块主要由listonefoldrjsp文件完成包括图中的几个部分显示邮件列表在登录后的首页中就以分页显示的形式列出了所有的邮件便于管理删除选中邮件在选中删除的邮件后可以单击该命令删除邮件显示错误信息在出现一些登录错误删除错误下载错误是将显示不同的错误信息提示用户邮件处理模块的图示邮件文件夹管理模块邮件文件夹管理模块
20、主要是由listallfoldersjsp文件完成包括图中的几个部分创建新的邮件文件夹用户可以根据自己的需要创建新的邮件文件夹便于管理用户的邮件重命名邮件文件夹用户可以重新命名自己创建的邮件文件夹删除邮件文件夹用户可以删除自己创建的邮件文件夹服务器的安装和配置在做本次系统之前必须配置JSP的服务器和电子邮件的服务器1JSP的服务器主要使用的是Tomcat同时在安装Tomcat服务器之前必需已经安装了SUN公司的JDK在安装Tomcat的时候主要是注意电脑环境变量的更改安装完成后只要在浏览器中输入httplocalhost8080看是否能打开Tomcat的网页如果能则表示安装成功8080端口是T
21、omcat的默认端口如果电脑上有服务已经把端口占用了可以把占用该端口的服务关掉如果该服务关不掉或者比较重要可以再Tomcat的安装目录中找到serverxml文件将其中port 8080改成没有被占用的端口号2电子邮件服务器的配置在本系统中我们采用了MerakMailServler公司的Mail服务器安装完成后在配置中输入本次实验所需要的域名和用户等信息然后保存配置完成客户端的实现给出本系统中包含的两个类由于代码比较多所以只给出了核心代码首先要加入一个中文字符串处理函数用于是邮件能发送中文public String codeToString String str 处理中文字符串的函数 Stri
22、ng s str try byte tempB sgetBytes ISO-8859-1 s new String tempB return s catch Exception e return s PMessage类重新封装了Message类重新封装Message类获得邮件的时间主题大小内容还有地址等 public PMessage Message msg throws Exception if msg null SimpleDateFormat df new SimpleDateFormat yyMMdd at HHmmss try date dfformat msggetSentDate
23、 null msggetSentDate msggetReceivedDate catch Exception e date new Date toString subject msggetSubject size msggetSize Object content try content msggetContent catch Exception e if msgisMimeType textplain content null text String content from assembleAddress msggetFrom to assembleAddress msggetRecip
24、ients MessageRecipientTypeTO cc assembleAddress msggetRecipients MessageRecipientTypeCC bcc assembleAddress msggetRecipients MessageRecipientTypeBCC 2构造函数PMessageString toString ccString bccString subjString text public PMessage String toString ccString bccString subjString text toreplace ccreplace
25、bccreplace thisto to thiscc cc thisbcc bcc thissubject subj thistext text 3将Address数组转化为对应的字符串用于在页面上显示 private String assembleAddress Address addr if addr null return String addrString boolean tf true for int i 0 i addrlength i addrString addrString tf getDisplayAddress addri tf false return addrStr
26、ing 4返回一个适合msg头的字符串 private String getDisplayAddress Address a String pers null String addr null if a instanceof InternetAddress pers InternetAddress a getPersonal null addr pers lt InternetAddress a getAddress gt else addr atoString return addr 2MailUserData类 1删除用户自己创建的邮件夹但不允许删除Web应用指定的系统邮件夹 public
27、 void doDeleteFolder String foldername throws Exception cant delete reserved folder if foldernameequalsIgnoreCase inbox foldernameequalsIgnoreCase trash foldernameequalsIgnoreCase draft foldernameequalsIgnoreCase sendbox throw new Exception Cannt delete reserved folder Folder folder storegetFolder f
28、oldername if folderexists throw new Exception This folder does not exists if folderisOpen folderclose true folderdelete true 2修改用户自己创建的邮件夹的名字但不允许修改Web应用指定的系统邮件夹得名字 public void doRenameFolder String fromnameString toname throws Exception if toname null tonameequals throw new Exception You do not inpu
29、t new folder name when renaming folder cant rename reserved folder if fromnameequalsIgnoreCase inbox fromnameequalsIgnoreCase trash fromnameequalsIgnoreCase draft fromnameequalsIgnoreCase sendbox tonameequalsIgnoreCase inbox tonameequalsIgnoreCase trash tonameequalsIgnoreCase draft tonameequalsIgnor
30、eCase sendbox throw new Exception Cannt rename reserved folder Folder folderFrom storegetFolder fromname Folder folderTo storegetFolder toname if folderFromexists throw new Exception This folder does not exists if folderFromisOpen folderFromclose true folderFromrenameTo folderTo 创建用户自己的邮件夹 public vo
31、id doCreateFolder String foldername throws Exception if foldername null foldernameequals throw new Exception You do not input new folder name when creating folder Folder folder storegetFolder foldername if folderexists throw new Exception This folder already exists foldercreate FolderHOLDS_MESSAGES
32、把邮件添加到参数指定的邮件夹中 public void doAppendMessage Message msg Folder f throws Exception Message m new Message1 m0 msg fappendMessages m 根据参数指定的邮件信息如标题收发地址和邮件内容来构建Message对象 public Message doAssembleMessage String toString ccString bccString subjString text throws Exception Message msg new MimeMessage sessi
33、on InternetAddress toAddrs null ccAddrs null bccAddrs null if to null toAddrs InternetAddressparse to false msgsetRecipients MessageRecipientTypeTO toAddrs else throw new MessagingException No To address specified if cc null ccAddrs InternetAddressparse cc false msgsetRecipients MessageRecipientType
34、CC ccAddrs if bcc null bccAddrs InternetAddressparse bcc false msgsetRecipients MessageRecipientTypeBCC bccAddrs if subj null msgsetSubject subj msgsetFrom new InternetAddress urlNamegetUsername urlNamegetHost if text null msgsetText text return msg 如果该邮件在Trash邮件夹中就永久删除该邮件否则把这封邮件移到Trash邮件夹中 public v
35、oid doDeleteMessage int arrayOptFolder f throws Exception for int i 0i arrayOptlengthi if arrayOpti 0 continue Message msg fgetMessage i1 if fgetName equals Trash Message m new Message1 m0 msg Folder Trash storegetFolder Trash fcopyMessages mTrash msgsetFlag FlagsFlagDELETED true else msgsetFlag Fla
36、gsFlagDELETED true fexpunge 从用户当前邮件夹中把用户当前访问的邮件移到参数指定的邮件中 public void doMoveMessage String toFolderName throws Exception Folder folderFrom currFolder Folder folderTo storegetFolder toFolderName if folderToexists throw new Exception Folder does not exist Message m new Message1 m0 currMsg folderFromco
37、pyMessages mfolderTo currMsgsetFlag FlagsFlagDELETED true folderFromexpunge 把用户编辑的邮件保存到Draft邮件夹中 public void doSaveMessage PMessage pmsg throws Exception Message msg doAssembleMessage pmsg save message in draft folder Folder f storegetFolder Draft if fisOpen fopen FolderREAD_WRITE doAppendMessage ms
38、gf 发送邮件并把邮件保存到SendBox邮件夹中 public void doSendMessage PMessage pmsg throws Exception Message msg doAssembleMessage pmsg send message Transportsend msg save message in sendbox folder Folder f storegetFolder SendBox if fisOpen fopen FolderREAD_WRITE doAppendMessage msgf 第6章 系统功能测试61 登录和注销模块的测试图61 邮件登录的初
39、始界面图邮件登录成功后进入的界面图邮件登录失败后显示的信息图系统注销后界面邮件发送模块的测试a一般的发送测试 图用户发送邮件时的界面图用户admin发送成功时提示的信息 图7 用户登陆后查看的邮件内容表示已经发送成功b抄送和暗送测试抄送就是 你写的这封邮件除了传送给收件人还会传送给你在抄送一栏里写的邮箱地址并且收件人知道你把这封邮件发给了他和抄送一栏里输入的邮件地址的人 暗送就是 你写的这封邮件除了传送给收件人还会传送给你在暗送一栏里写的邮箱地址但是收件人不知道你把这封邮件发给了暗送一栏里输入的邮件地址的人图8 抄送测试图9 暗送测试图10 登录的邮箱会查收到发送的邮件图11 登录将查收到暗送
40、测试的邮件c存草稿箱测试图12 存入草稿箱测试图13 此时草稿箱的情况图14 在草稿箱中查看存入信件的内容邮件接收模块的测试图15 邮件接收模块的测试邮件管理模块的测试此模块主要是如何删除用户接收到的邮件图16 删除邮件的操作界面图17 删除后的邮件都在垃圾箱中邮件文件夹管理的测试图18 一开始进入邮件系统的邮件夹的界面有时候邮件太长或者是表格Word文档一正文方式发送不太方便这样可以引用一个附件功能及那个这些表格或Word文档以附件的形式上传发送在扩充一下提供可以发送多个邮件的功能 致 谢感谢我的论文的每个细节和每个数据都离不开的细心指导严谨细致一丝不苟的作风一直是我工作学习中的榜样他循循善
41、诱的教导和不拘一格的思路给予我无尽的启迪在论文即将完成之际我的心情无法平静从开始进入课题到论文的顺利完成有可敬的师长同学朋友给了我无的帮助在这里请接受我诚挚的谢意参考文献1 美 埃史尔Java编程思想 第4版 机械工业出版社20072 美 鲍格斯坦著JSP设计 第3版 中国电力出版社 20063 美 巴萨姆 Head First Servlets JSP 中文版 中国电力出版社 2006 4 周影 网络编程语言JSP实例教程M北京电子工业出版社200365 陈海山深入Java Servlet 网络编程M北京清华大学出版社20022 6DonnyJSP与网站开发编程实战M北京科学出版社 20017 7Steven HolznerJava技术内幕M北京机械工业出版社20021 8 Phil Hanna JSP技术大全M北京机械工业出版社20023 9 Karl Moss Java Servlet开发人员指南M北京清华大学出版社200210 李争Jbuilder 精髓电子工业出版社200411 Liang YD Java语言程序设计基础篇机械工业出版社200612 刘晓华 精通Java核心技术电子工业出版社200313 邹建中文版SQL Server 2000开发与管理应用实例人民邮电出版社2014刘彬JSP数据库高级教程 北京清华大学出版社2006315
链接地址:https://www.31ppt.com/p-4019469.html