简单邮件客户端设计.doc

上传人:jian****018 文档编号:9365109 上传时间:2020-04-05 格式:DOC 页数:16 大小:773.50KB
返回 下载 相关 举报
简单邮件客户端设计.doc_第1页
第1页 / 共16页
简单邮件客户端设计.doc_第2页
第2页 / 共16页
简单邮件客户端设计.doc_第3页
第3页 / 共16页
点击查看更多>>
资源描述
计算网络 课程设计 学 院 计算机学院 专 业 网络工程 年级班别 2012 级 3 班 学 号 3112006443 学生姓名 王彦德 课 题 简单的电子邮件客户端 指导教师 何翠红 成 绩 计算机网络课程设计任务书 设计题目 利用 MyEclipse SWT Designer 实现电子邮件客户端 已知技术参 数和设计要 求 1 设计图形用户接口 GUI 的电子邮件客户端 与收件人 SMTP 服务器交互 实现邮件的发送 2 界面设计中至少包含用户输入收件人地址 邮件主题 发件人地址 文 本电子邮件内容编辑等的编辑框 以及发送邮件 Send 清除邮件内容 Clear 退出客户端 Exit 等的命令按钮等 3 如果可能 实现附件发送 完成该项功能将得到加分 设计内容与 步骤 1 阅读 RFC821 Simple Mail Transfer Protocol 熟悉 SMTP 协议 2 熟悉 Java Socket 实现网络通信的基本机制 3 熟悉 TCP Socket 程序设计方法 4 熟悉 MyEclipse SWT Designer 的 GUI 应用程序开发环境的安装 使用 5 电子邮件客户端用户界面设计 6 电子邮件客户端功能实现 7 课程设计任务说明书 设计工作计 划与进度安 排 1 SMTP 4 小时 2 Java TCP Socket 程序设计基础 2 小时 3 MyEclipse SWT Designer 环境安装与使用 8 小时 4 电子邮件客户端 GUI 界面设计 4 小时 5 电子邮件客户端功能实现 12 小时 6 课程设计说明书 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 使用编程工具 MyEclipse SWT Designer 2 使用的语言 Java 3 开发平台 Mac OS X 10 6 8 2 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 信件等 因此 邮件消息的解析过程实际上是一个后序周游整棵 MIME 消息树的过程 消息的解析需要递归访问消息中的每个消息体 也就是树的叶结点 从中获取相关信息 并生成一个邮件对象 用于随后的邮件分类和写人数据库操作 在解析时 需要将发送者 接收者 主题 发送时间 正文等有用信息存储在定义好的邮件对象中 将附件和 HTML 格 式的信件存储在文件系统 并将附件的文件名和文件路径存储在邮件对象中 3 3 2 邮件发送 Email 的发送实际上就是构造一个 MIME 消息的过程 JavaMail API 提供了相应的接口 用于构造一个邮件消息 但是相对较复杂 本系统采用 A pache 的开源工具包 Commons Email 来实现邮件发送 Commons Email 构建于 JavaMail API 上 对 JavaMail 进行了再封 装 提供了极为简便的借口用于通过 Java 程序发送 Email 它提供的主要类有 SimpleEmail 用于发送简单的文本类型 Email MultiPartEmail 用于发送带附件的 Email HtmlEmail 用于发送 Html 格式的邮件 EmailAttachment 描述 Email 的附件 借助 Commons Email 工具包发送一个简单 Email 只需要创建 SimpleEmail 对象 设置 SMTP 服务器 认证信息 发送者 接收者 主题 正文 然后发送即可 要发送一个带附 件的邮件 只需要构造一个 MuhiPartEmail 对象 设置和简单 Email 一样的属性 然后构 造附件对象并将之附加在 MuhiPartEmail 中即可 不难看出采用了 Commons Email 工具包 后 邮件的发送十分简洁 只需要构建相应的附件和邮件内容即可 而且工具包还支持直 接用网络上的文件作为附件内容 3 3 3 系统性能问题 邮件服务器上可能会有很多封邮件 如何判断一封邮件是否被处理过 并对未处理的 邮件消息进行过滤与分类是系统的一个性能瓶颈 系统基于 Web 技术构建客户端 而 Web 应用程序不可避免的会有频繁的数据库操作 建立数据库连接是相当耗费资源和时间的操 作 在 JSP 应用中若直接采用 JDBC 接口访问数据库 必然会频繁建立和关闭数据库连接 从而导致服务器性能下降 为保证系统高效运行 采用如下的策略来提高整体性能 1 多线程技术 每个 Email 消息的处理是相对独立的过程 因而采用多线程技术同时处理多封邮件是 提高性能的最简单可行的做法 系统共使用 8 个线程处理邮件消息 根据邮件消息的总数 就能计算出每个线程所需要处理的消息数为 N M 8 表示取上整 其中第 k 个线程 处理邮件消息队列中第 8i k i 0 1 N 一 1 个消息 以倒序的方式处理可以使得消 息相对均匀的分配给处理线程 并保证有效消息先被处理 2 灵活高效的过滤机制 每个 Email 都会对应一个固定的 Message ID 和 SentDate 在解析时很容易获取 系 统会对每个帐号设定邮件开始接收 13 期 ReceiveStartDate 在处理 E mail 消息时 先 根据 SentDate 来判断 若在该 13 期前 则不予以处理 每次接收完成后 更新 ReceiveStartDate 至当前 13 期 为了避免重新设定 Re ceiveStartDate 或者重新执行接 收任务时 对已经处理过的有效邮件重复处理 系统提供两种机制 一种是不在服务器上 保留副本 这样每次获取的必然是新邮件 一种是保留副本 但利用 Property 文件记录每 个符合要求的消息的处理情况 以便快速判断邮件消息是否被处理过 3 采用数据库连接池技术 连接池会在初始化时保持一定数量的数据库连接 应用程序在操作数据库时 从连接 池中获取一个连接 完成操作后释放连接 这样大大提高了系统性能 保存邮件信息至数 据库时 系统采用 Apache DBCP Component 来建立数据库连接池 在系统的 Web 应用部分 通过配置 Tomcat 数据源来建立数据库连接池 3 4 系统特点 系统借助 JavaMail API 实现了一个简单的基于 Web 的邮件客户端 可以将不同邮件服 务器的有效邮件聚合在一起进行统一归档管理 并提供统一 友好的界面以方便相关人员 处理邮件 系统在自动化的基础上提供选择性干预的机制 以应对一些特殊情况 系统使 用 Java 语言开发 基于 B S 结构 采用 MVC 模式 系统层次清晰 结构合理 在后台处 理程序和应用逻辑的设计中 采用面向对象的设计方法和分层设计思想 将抽象和实现相 分离 具有很好的可扩展性好 为了提高系统性能 采用了多线程技术和连接池技术 系 统执行效率高 系统支持自定义简单的过滤规则 邮件类别 分类规则 并能很容易的进 行扩展以支持复杂的自动化分类技术 3 5 系统具体设计 登陆界面 功能目录 发送邮件 邮件已发送 对方收到邮件并回复邮件后 刷新收信箱 收信箱列表 收到对方回复的新邮件 读取邮件内容 已发送邮件列表 对邮件的操作 回复邮件 3 6 关键代码 3 7 结束语 本系统目前已完成核心功能模块的开发 正在进行界面开发和测试中 即将投入使用 系统借助 JavaMail API 和 Web 技术 对外部邮件服务器上不同邮件帐号的邮件进行分类和 统一集中管理 并及时通知工作人员处理邮件 解决了邮件管理混乱 处理效率低下 备 份难度大等问题 提供了一个界面友好 使用方便的邮件综合管理系统 本系统的研究 为企业的邮件综合管理提供了一种高效 可行的解决方案 有着广泛的应用前景 但在邮 件处理方面还需要改进 有待于引进复杂的算法和技术 并使用更灵活的分类框架 实现 智能化 自动化 高效的邮件管理
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑环境 > 建筑工程


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!