当前位置:文档之家› 简单邮件客户端设计

简单邮件客户端设计

《计算机网络》课程设计报告题目:简单邮件客户端设计学院:计算机科学与工程学院专业:软件工程2012年3月10日目录简单邮件客户端设计说明书 (1)一前言 (1)二需求分析 (1)2.1 功能需求 (1)2.2开发环境工具 (1)2.3 所需要的知识 (2)三概要设计 (2)3.1 邮件系统各功能概述 (2)3.1.1 JavaMail简介 (2)3.1.2 设计目标 (3)3.1.3 系统功能概述 (3)3.2 邮件管理系统总体设计方案 (4)3.2.1 系统体系结构 (4)3.2.2 功能模块 (4)3.3 系统开发的技术难点和解决方案 (5)3.3.1 MIME Messsage的解析 (5)3.3.2 邮件发送 (6)3.3.3 系统性能问题 (6)3.4 系统特点 (7)3.5 系统具体设计 (7)3.6 关键代码 (11)3.7 结束语 (20)简单邮件客户端设计说明书一前言随着互联网技术及网络办公化的发展,电子邮件成为人们主要的通信方式之一。

越来越多的人开始使用它。

而且用它的人数势必会继续增加。

虽然,现在已经有很多的邮件收发软件例如著名的FoxMail ,但是对于大多数的非专业的人来说它还是有点难度。

因此,我们所设计的基于JavaMail的邮件收发系统就利用JavaMail开发包的高级应用和E-Mail的相关协议开发出这个功能相对简单,但是实用、方便、快捷的邮件收发系统。

主要用于帮助用户将邮件发送给SMTP服务器和从POP3邮件服务器读取用户的电子邮件。

它集邮件的撰写、发送和接收功能与一体。

并且支持附件的发送和接收以及其它一些附加功能的实现。

虽然它没有FoxMail那么强大的功能,但是它容易掌握和使用。

整个系统功能流畅,从操作简便、界面友好、灵活实用的要求出发,使用户之间的交流能够更加地方便和快捷。

本人结合SMTP以及POP3协议的实现原理、相关JavaMail API帮助文档以及相关参考书,实现了一个工作在PC下的邮箱客户端程序,该程序基本上实现了一个邮箱所对应的所有功能。

二需求分析2.1 功能需求(1)开发一个JavaMail API下的邮箱客户端,实现邮件的发送、接收以及。

(2)通过输入服务器地址、用户名、密码,可以实现远程FTP服务器登录。

(3)提供本地文件和文件夹的上传功能,对FTP主机文件进行下载和删除。

(4)提供对本地目录的读取与返回,能够列出文件和文件夹。

(5)FTP提供两种工作模式的选择,Port模式(主动模式)和Passive模式(被动模式)。

2.2开发环境工具(1)使用编程工具:Eclipse(2)使用的语言:Java(3)使用的开发包:javamail-1_4版,下载地址为/technetwork/java/javasebusiness/downloads/java-archive-do wnloads-eeplat-419426.html#javamail-1.4.4-oth-JPR(4)开发平台:Mac OS X 10.6.82.3 所需要的知识(1)计算机网络的基本知识(2)了解SMTP协议以及POP3协议基本实现原理(3)使用Windows下的Eclipse编译器的使用方法(4)熟悉邮件的各项功能。

三概要设计3.1 邮件系统各功能概述3.1.1 JavaMail简介JavaMail API是Java EE的一部分,是Java SE的可选组件。

该组件提供了一个平台无关、协议独立的框架,预置了一些最常用的邮件传送协议的实现方法,通过一组API来模拟邮件系统。

提供Email的发送和接收服务。

它借鉴了IMAP、MAPI、CMC等消息系统API的设计,采用面向对象的思想将接2008年4月18日收到接口与实现相分离,支持存取方式、消息格式、消息传送协议不同的邮件消息系统,可以简便的为应用程序增加Email支持,广泛应用于构件邮件和消息应用系统 JavaMail API封装了电子邮件功能中:邮件对象、发送、身份认证、接收等功能。

其核心类有:Session、Authenticator Address Message Transport、Store、Folder等。

其中Session是邮件操作的接口,用于建立了基本的邮件会话;Authenticator类提供访问邮件服务器所需的认证信息;Message描述基本的邮件消息,是收发邮件的操作单位;Transport是发送邮件时所用的协议,通常是SMTP;Store模拟了消息数据库及其内部存储消息的目录的访问协议;Folder用于描述消息数据库中的目录结构。

一个Session会有多个Trans—port,每个Store包含一系列的Folder和Message,每个Folder又包含一系列的Folder 和Message。

借助这些类,就可以构建各种典型的邮件应用。

JavaMail的最新实现是1.4版本,可以支持POP3、IMAP4、SMTP协议。

由于JavaMail还需要JavaBeans Activation Framework(JAF)框架的支持,3.1.2 设计目标公用邮箱是和外单位交互的主要渠道,用户获取和提交一些重要数据和文件,也是与本单位其它部门进行业务的信息交换的重要渠道。

公用邮箱不仅有13常办公相关的各类邮件,还有很多其它种类的邮件。

此外,一些与办公相关的邮件还会发送到工作人员的个人邮箱中。

工作人员使用Fox.mail或其它邮件客户端将公用邮箱中的邮件从服务器下载至本地,然后进行处理。

这样的工作模式存在的缺点有:邮箱中邮件太多,很难找到与工作相关的邮件,工作效率低下,存在潜在处理风险;工作人员都利用邮件客户端存储和处理邮件,造成资源浪费,且无法及时得悉邮件的处理情况,难以落实责任;难以对办公相关的邮件进行统一归档和备份,并提供检索、统计、数据分析等服务;邮件帐号分散管理,带来潜在的信息安全隐患。

本系统的设计旨在解决这些问题,为工作人员提供一个基于Web的简洁、易用、安全可靠、功能完备的办公邮件处理平台。

3.1.3 系统功能概述(1)邮件自动获取与过滤系统每天实时或者在固定的时间,统一收集多个外部邮件服务上多个邮件帐号的新邮件后汇总在一起,并根据发送地址和过滤规则对邮件进行过滤,提取服务器上的有效邮件,通过人工干预或者自动化的机制将邮件基本信息存储在数据库中,附件存人文件服务器,对完全重复的邮件通过比对后只保留一份。

(2)邮件分类对过滤后的有效邮件,按照制定好的分类规则,根据邮件主题、发件人信息、附件属性及关键词对邮件及其附件进行归类,并提供自动归类和人工干预后确定邮件类别两种灵活的类别确认机制。

(3)邮件提醒与处理在邮件归类后,对于新邮件,系统通过与短信发送平台的接口,将发件人、发送时间、主题、优先级等信息以短信的形式发送给相应邮件类别的处理者。

邮件处理者通过网页登陆系统,可以像使用Web邮箱那样,方便快捷的查阅和处理只属于自己需要处理的那些邮件。

(4)邮件管理系统向用户提供邮件检索、删除、调整分类等功能。

可以统一直观的对:信息过滤情况、信息分类跟踪、处理情况、审阅结果、处理者信息、反馈情况等进行展示。

还可以对邮件进行统计,生成月度及年度邮件统计报表。

普通用户只能管理与自己工作相关的邮件,系统管理员可以管理所有邮件。

(5)邮件帐号设定及过滤和分类规则定义系统管理员可根据需求设定多个邮件帐号,将不同邮箱的邮件汇总在一起。

过滤规则是系统选择接收邮件的依据,目前状况下,对邮件地址和发送时间进行过滤已能满足需求。

分类规则是对邮件进行分类的依据,对每个公司或单位,管理员可以根据业务类型定义邮件及附件类别,然后指定该类别邮件的关键词、特征及处理者。

3.2 邮件管理系统总体设计方案3.2.1 系统体系结构系统基于B/S结构,采用MVC(Mode1.View.Controller)模式,体系结构系统采用三层结构:第一层是客户端层,用户通过IE、Firefox等浏览器与系统交互,发起浏览、检索、处理邮件、系统配置与管理等请求,并展示处理结果。

第二层为服务器层,可以分为两个功能相对独立的部分,一个是Web服务器,用于响应和处理客户端请求,通过请求处理程序与后台数据库交互,返回处理结果给浏览器;一个是邮件处理部分,通过JavaMail API与邮件服务器交互,发送和接收邮件,并对有效邮件进行解析与分类,将结果存放在数据库和文件系统中,然后借助短信发送平台的接口通知用户处理邮件。

第三层为数据层,包括:用于存储系统信息、邮件信息的数据库服务器,存储邮件附件的文件服务器。

为了提高系统可扩展性和满足复杂应用逻辑的需求,在系统第二层的Web应用中,是MVC模式的一种实现。

3.2.2 功能模块系统涵盖了运行中心日常邮件管理与维护的所有功能,共分为六个模块:邮件获取模块、邮件发送模块、邮件分类模块、邮件处理模块、邮件管理模块、联系人模块。

这些模块功能相对独立,具有高内聚、低耦合的特点,每个模块都有定义良好的接口,可以扩展和增加复杂的应用逻辑。

其中,邮件发送模块可以发送文字,图片,附件,并可以同时发送给不同的邮箱。

其中可编辑发送文字的大小格式颜色等。

邮件获取模块可以获取邮件,在收件箱可以看到邮件列表,刷新可见新邮件。

邮件分类模块是将邮件客户端分为发信箱,收信箱,已发送,已删除邮件管理模块是可对邮件删除,回复,彻底删除,对已删除的邮件可以恢复,刷新收信箱。

邮件处理模块是对邮件的查看,下载附件,回复。

联系人模块是可以添加,删除联系人,发邮件的时候可以直接点击已添加过的联系人进行发送。

3.3 系统开发的技术难点和解决方案3.3.1 MIME Messsage的解析MIME(Multipurpose Internet Mail Extension)协议是目前应用最广泛的邮件协议,用于定义邮件的格式,它可以包含文本、图像、音频、视频以及其它应用程序专用的数据。

邮件的解析实际上可以就是解析MIME消息的过程,是邮件过滤、分类、管理等工作的前提。

通常情况下,一个MIME消息由消息头(Headers)和消息体(Content)组成。

消息头包括:发送者、接收者、发送时间、主题、优先级、邮件内容类型、MIME版本号等信息。

消息体为邮件的内容,它可以为简单的文本,也可以是包含多个分段(Part)的多重消息(Muhipart),而其中每个分段的消息都有自己的消息头和消息体。

对于不带附件的简单邮件,其消息体的内容类型是纯文本,text/plain或者text/html等。

对于带附件或者包含多种内容格式的邮件,其消息体为muhipart类型,通常为:muhipart/mixed、muhipart/related或multipart/alternative.比如:邮件正文、附件、HTML信件等。

相关主题