【运行截图请往下看】编程语言:Android、iOS、C#、Asp/Asp.net、Java、Vb、Php、Jsp、C++等
【专业优势】18年功力源码技术大神,坐阵亲临指导,远程协助包100%成功运行!
摘 要
随着互连网的迅速发展,电子邮件成为了人们生活中不可缺少的一部分。电子邮件几乎成为了全球最流行的通讯工具,因此,开发一个邮件系统对一个企业来说是很有益处的。
电子邮件发送协议SMTP和电子邮件接收协议POP3是目前电子邮件系统普遍使用的协议,作为TCP/IP四层模型中的应用层,它定义了自己标准的协议命令,使得各个电子邮件系统都按照统一标准实施,正是因为这样,才使各个系统无差错的进行交换信息。
本系统就是在当前邮件通讯十分流行的背景下开发的,采用C语言进行邮件服务器的编写,PHP进行客户端编写,利用了网络编程技术,Windows多线程技术,目的在于能使使用它的用户及时方便地进行信息交流。
关键词:Winsock邮件服务器,PHP WebMail客户端
Design and Implementation of Mail System Based on Winsock
Abstract:As the development of the Internet,email has become an important part in people’s life.Email has almost become the most popular communication tool in the world.So developing an mail system is very useful to an enterprise.
At present Simple Mail Transfer Protocol and POP3 are the most widely used protocol in mail system.They work at application layer in TCP/IP protocol architecture.It defines a set of standard command of itself.As all the mail system use the same command,they can exchange information with no errors.
This system is developed on the situation that mail communication is very popular.We develop mail system server using C language and mail system client with PHP language.At the same time,we also use network programming technology and Windows mutilthread programming techonology.This system is used for people’s quick information communication.
Keywords: MailSystem based Winsock,PHP WebMail Client
目 录
第1章 前 言 1
1.1 邮件系统概况 1
1.2 本系统内容 1
1.3 国内外现状 1
1.4 技术综述 2
1.5 软件开发工具 2
1.6软件运行环境 2
第2章 需求分析 3
2.1操作系统和编译环境 3
2.2邮件系统支持协议 3
2.3邮件安全技术 3
2.4开发语言 3
第3章 系统总体设计 4
3.1 主要技术概述 4
3.1.1 TCP/IP协议 4
3.1.2 SMTP协议 4
3.1.3 POP3协议 6
3.1.4 Windows多线程编程技术 7
3.1.5 Winsock编程技术 7
3.2 系统总体架构 8
3.2.1 系统总体设计目标 8
3.2.2 邮件服务器总体架构 9
3.3 系统总体流程 9
第4章 系统功能设计与实现 11
4.1 软件功能分析 11
4.2 SMTP标准邮件协议命令读取处理模块 11
4.3 POP3标准邮件协议命令读取处理模块 14
4.4 SMTP服务器之MAIL命令处理模块 14
4.5 SMTP服务器DATA命令处理模块 15
4.6 SMTP服务器QUTI命令处理模块 17
4.7 POP3服务器USER命令处理模块 19
4.8 POP3服务器LIST命令处理模块 20
4.9 POP3服务器RETR命令处理模块 22
4.10 POP3服务器DELE命令处理模块 23
4.11 POP3服务器QUIT命令处理模块 24
第5章 系统测试 26
5.1 PHP Web客户端测试程序 26
结 论 29
致 谢 30
参考文献 31
(1)作为一个邮件服务器,它必须和外部进行通信,所以都必须开放一个端口,所以首先,SMTP服务器打开25端口进行监听,POP3邮件服务器打开110端口进行监听。
(2)作为一个邮件服务器,它必须处理用户的请求,所以,SMTP服务器在25端口接收用户请求后会新建一个处理线程,处理用户的请求,同样,POP3服务器在110端口接收到用户请求后也会建立一个线程处理用户的请求。
本系统就是实现了这个服务器的应用协议.
SMTP协议
(1)SMTP协议概述:SMTP提供了一种邮件传输的机制,当收件方和发件方都在一个网络上时,可以把邮件直传给对方;当双方不在同一个网络上时,需要通过一个或几个中间服务器转发。SMTP首先由发件方提出申请,要求与接收方SMTP建立双向的通信渠道,收件方可以是最终收件人也可以是中间转发的服务器。收件方服务器确认可以建立连接后,双发就可以开始通信,SMTP的模型示意图如图3-1所示。
(2)SMTP协议主要命令
SMTP工作的基本的命令有7个:HELO﹑MAIL﹑RCPT﹑DATA﹑RSET﹑NOOP和QUIT,下面分别介绍。
HELO:发件方问候收件方,后面是发件人的服务器地址或标识。收件方回答OK时标识自己的身份。问候和确认过程表明两台机器可以进行通信,同时状态参量被复位,缓冲区被清空。
MAIL:这个命令用来开始传送邮件,它的后面跟随发件方邮件地址(返回邮件地址)。它也用来当邮件无法送达时,发送失败通知。为保证邮件的成功发送,发件方的地址应是被对方或中间转发方同意接受的。这个命令会清空有关的缓冲区,为新的邮件做准备。
RCPT:这个命令告诉收件方收件人的邮箱。当有多个收件人时,需要多次使用该命令,每次只能指明一个人。如果接收方服务器不同意转发这个地址的邮件,它必须报550错误代码通知发件方。如果服务器同意转发,它要更改邮件发送路径,把最开始的目的地(该服务器)换成下一个服务器。
DATA:收件方把该命令之后的数据作为发送的数据。数据被加入数据缓冲区中,以单独一行 是"."的行结束数据。结束行对于接收方同时意味立即开始缓冲区内的数据传送,传送结束后清空缓冲区。如果传送接受,接收方回复OK。
RSET:这个命令用来通知收件方复位,所有已存入缓冲区的收件人数据,发件人数据和待传送的数据都必须清除,接收放必须回答OK.
NOOP:这个命令不影响任何参数,只是要求接收放回答OK, 不会影响缓冲区的数据。
QUIT:SMTP要求接收放必须回答OK,然后中断传输;在收到这个命令并回答OK前,收件方不得中断连接,即使传输出现错误。发件方在发出这个命令并收到OK答复前,也不得中断连接。
POP3协议概述:POP3提供了一种邮件传输的机制,POP3客户向POP3服务器发送命令并等待响应,POP3命令采用命令行形式,用ASCII码 表示。 服务器响应是由一个单独的命令行组成,或多个命令行组成,响应第一行以ASCII文本+ OK或-ERR指出相应的操作状态是成功还是失败
在POP3协议中有三种状态,认可状态,处理状态,和更新状态。 当客户机与服务器建立联系时,一旦客户机提供了自己身份并成功确认,即由认可状态转入处理状态, 在完成相应的操作后客户机发出quit命令,则进入更新状态,更新之后最后重返认可状态,POP3的模型如图3-2。
POP3协议基本命令:
USER username认可:此命令与下面的pass命令若成功,将导致状态转换 。
PASS password认可。
APOP Name,Digest认可:Digest是MD5消息摘要。
STAT None处理:请求服务器发回关于邮箱的统计资料,如邮件总数和总字节数。
UIDL [Msg#]处理:返回邮件的唯一标识符,POP3会话的每个标识符都将是唯一的 。
LIST [Msg#]处理:返回邮件数量和每个邮件的大小 。
RETR [Msg#]处理:返回由参数标识的邮件的全部文本 。
DELE [Msg#]处理:服务器将参数标识的邮件标记为删除,由quit命令执行。
RSET None处理:服务器将重置所有标记为删除邮件,用于撤消DELE命令 。
TOP [Msg#]处理:服务器将返回由参数标识邮件前n行内容,n是正整数。
NOOP None处理:服务器返回一个肯定的响应 。
优酷视频演示:




下一个计算机源码设计:没有了

- 364PHP010在线交友网站2012-12-21 01:22:07
- 979大神ThinkPHP5陈东游泳馆管理系统2019-01-26 20:12:24
- 971大神ThinkPHP5高校学生社团网站设计2019-01-16 13:42:07
- 960大神ThinkPHP5学生成绩管理考勤点名网站2018-10-12 14:41:54
- 958大神ThinkPHP5图书查询借阅管理网站2018-10-10 22:06:33
- 955基于ThinkPHP5.0个人博客网站设计2018-08-26 13:27:07
- 347PHP009电影资讯信息网站2012-11-22 12:22:08
- 346PHP008在线论坛系统2012-11-22 12:20:57

