论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
基于Linux的邮件系统设计与实现
摘要: 电子邮件作为Internet最为广泛的应用之1,在人们的工作和生活中扮演着重要的角色,应用的普及使电子邮件技术有了飞速的发展。由于Linux操作系统具有性能稳定、可靠性高和价格低廉的特点,使得在Linux系统下运行的邮件服务系统,在满足用户需求的基础上降低了系统价格,提高了可靠性。
本设计分析了邮件服务器的工作原理和工作机制以及Linux的网络编程环境,实现了1个Linux局域网的电子邮件系统。
本设计实现的电子邮件系统是在内核版本为2.6.11的Linux操作系统上用GNU C语言编程实现的。系统分为客户端和服务器端两大模块,服务器端由两个子模块构成,分别负责通信和文件操作。客户端也分成两个子模块,分别负责与用户交互和与服务器端通信。首先对邮件服务系统的原理和机制以及Linux Socket网络编程环境作了1个介绍,然后描述了邮件系统开发的整个过程,包括系统需求分析、总体分析、详细设计以及编码实现,部分关键代码作为附录以便查阅。同时为了对系统有1个直观的介绍,设计实现了1个简化版的邮件服务系统以供演示。
关键字: 邮件系统;Linux;网络编程;套接字;服务器;客户端;电子邮件系统
The Design and Implementation of Mail System Based on Linux
Abstract:As one of the most widespread applications, the email plays an important role in our life. Meanwhile, the wide application of email system promote a rapid development of email technology. Linux operating system have some characteristics such as stable performance, high reliability and inexpensive price, so mail service system based on Linux system can meet the users needs ,reduce the price and enhance the reliability of the system.
This graduate project has analyzed the mail server system’s work principles and mechanisms and the Linux network programming environment. At last achieved a Linux local area network electronic mail system.
This mail system is developed on Linux 2.6.11.The system is programmed with GNU C language and is consist of two big modules ,the client module and the server module , the server module origin from two sub-module constitutions, one response to communication and another take charge of the document operation. The client module also be divided into two different modules, the user interactive interface sub-module and the correspondence sub-module. At first , this thesis introduce network programming environment , the mail server system’s work principles and mechanisms, then describe the entire mail system develop process including system demand analysis, configuration analysis, detail design and code realization, part of essential code attached as appendix at the end of paper for consult. In order to offer a direct-viewing impression about mail system, the design realized a simplify mail service system for demonstration.
Key words: Mail system; Linux; Network programming; socket; Server; Client side; Electronic mail system
目 录
前 言 1
1 邮件服务系统与LINUX网络编程环境分析 2
1.1 电子邮件发展简介 2
1.2 电子邮件发展趋势 3
1.3 邮件服务系统功能与结构 4
1.3.1 电子邮件基本功能 4
1.3.2 电子邮件基本结构 4
1.4 套接字简介 5
1.5 SOCKET编程的基本流程 6
1.6 BSD套接字基本函数介绍 7
1.6.1 socket()函数 7
1.6.2 connect()函数 7
1.6.3 bind()函数 8
1.6.4 listen()函数 9
1.6.5 accept()函数 9
1.6.6 read()和write()函数 10
1.6.7 recv()和send()函数 10
1.6.8 close()函数 10
2 系统开发环境与系统概述 11
2.1 系统开发环境 11
2.2 邮件系统概述 11
2.2.1 系统名称 11
2.2.2 系统设计原则 11
2.2.3 系统设计总体目标 12
3 系统概要设计 13
3.1系统概要设计准则 13
3.1.1 用户界面的友好性 13
3.1.2 功能简洁实用性 13
3.1.3 系统结构紧凑性 13
3.1.4 系统可扩展性 13
3.1.5 系统可靠性 13
3.2 系统模块划分 14
3.3 系统模块设计 15
3.3.1 服务器文件处理模块 15
3.3.2 服务器通信模块 15
3.3.3 客户端通信模块 15
3.3.4 客户界面提供模块 15
3.3.5 公共环境 15
4 系统详细设计 16
4.1 服务器公共数据模块 16
4.1.1 模块设计说明 16
4.1.2 数据结构定义 16
4.1.3 模块函数 18
4.1.4 模块结构图 19
4.2 服务器文件处理模块 19
4.2.1 模块设计说明 19
4.2.2 模块文件 20
4.2.3 模块函数 20
4.2.4 模块结构图 22
4.3服务器通信模块 22
4.3.1 模块设计说明 22
4.3.2 模块文件 22
4.3.3 模块函数 22
4.3.4 模块结构图 23
4.4 客户端公共数据模块 23
4.4.1 数据结构定义 24
4.4.2 模块函数 24
4.5 客户端界面提供模块 24
4.5.1 初始化界面 24
4.5.2 登陆界面 24
4.5.3 注册界面 25
4.5.4 用户主界面 25
4.5.5 写信界面 25
4.5.6 邮件读取界面 25
4.5.7 邮件删除界面 25
4.5.8 用户信息界面 25
4.5.9 用户修改界面 25
4.5.10 退出界面 26
4.5.11 界面关系图 26
4.6 客户端通信模块 26
4.6.1 模块函数 27
4.7 同步方式 27
5 演示系统测试与运行 28
5.1 程序的编译与启动 28
5.2 系统运行状况 28
5.2.1 启动界面 28
5.2.2 注册界面 29
5.2.3 登陆界面 30 (科教作文网http://zw.ΝsΕAc.Com编辑整理)
5.2.4 写邮件界面 31
5.2.5 读取邮件界面 31
5.2.6 删除邮件界面 32
结束语 33
参 考 文 献 34
致 谢 辞 35
附 录 服务器端源代码 36
前 言
计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。在诸多支持网络的操作系统中,LINUX以其优秀的性能越来越引起人们的关注。Linux目前已经进入了许多主流公司的事业,电信、金融、政府、军事等领域也广泛采用它。使用Linux作为邮件服务器,主要是可以与Sendmail、MySQL等开源软件共同使用,在满足用户需求的基础上降低了系统价格。这次毕业设计就是探讨电子邮件技术与LINUX的网络编程开发环境,并实现1个基于Linux局域网的电子邮件系统,为将来在这方面的发展打下1个基础。
电子邮件系统的设计与实现需要有电子邮件系统和Linux网络编程的相关背景知识,这样才能对邮件系统的特性有了解,才能了解邮件系统的架构和工作原理。电子邮件离不开网络,网络通信是电子邮件技术的关键所在,只有具有网络编程方面的知识和实践才能具有实现电子邮件的网络传输功能的能力。
软件的实现并不只是简单的编程过程,1个系统的设计实现需要用软件工程的思想,将正确的管理技术和技术方法结合起来,采用工程的概念、原理、技术和方法来开发和维护。软件的开发是1个规范的过程。利用这次毕业设计的机会把课堂上学来的东西,加以消化加以验证,理论与实践相结合。
作为计算机专业的学生,若要提高自己的编程水平,除了从书本以及其他媒介吸取好的编程思维和方法之外,自己动手实践是1个必不可少的过程,只有这样才能够将理论知识加以消化为己所用。
在毕业设计的过程中,多多学习理论知识并且尽可能的自己动手实践,在实际的环境下去锻炼自己实际的能力,这就是本次毕业设计的意义与目的所在。