基于WinSock的邮件系统 1 设计目标: 1.1 SMTP发送邮件服务器(c语言) 1.2 POP3接受邮件服务器(c语言)

Slides:



Advertisements
Similar presentations
一、软件简介 二、功能介绍 三、产品优势 四、应用范围 五、成功客户 目录目录 软件简介 ●员工工作时间,都认真工作了? ●还是在玩游戏? ●浏览与工作无关的网站? ●收发私人邮件? ●甚至将公司的机密资料拷贝带 走?或是通过邮件或聊天工具泄 密? …… 解决之道.
Advertisements

计算机网络原理与实用技术 陈涛 华中科技大学公共管理学院 2009年2月.
6.1 区域委派与域名转发 6.2 虚拟主机技术 6.3 架设FTP服务器 6.4 动态主机分配协议 6.5 架设Mail服务器
第七章 Internet网络应用.
计算机应用基础网考课 第六章 计算机网络基础.
網路程式設計 (Network Programming)
项目四:Internet基础与接入方法 第八章 应用服务器安装配置
第13章:电子邮件系统 TCP/IP互联网上的电子邮件传输过程; 电子邮件的地址表示; 电子邮件传输协议SMTP和POP3;
第6章:计算机网络基础 网考小组.
《网络基础与Internet应用》.
半导体所网络概况 图书信息中心 张 棣.
数字化校园建设与思考 扬州大学信息中心 沈 洁 2017年3月3日.
福州职业技术学院图书馆 福州恒达通电子信息技术有限公司
数据通信与计算机网络 第1讲 绪论 浙江万里学院 邵鹏飞.
大学计算机基础 主讲:张建国 电话: 实验及交作业网址:
第6章 计算机网络基础 1.
第7章 防 火 墙 技 术 7.1 防火墙概念 7.2 防火墙原理及实现方法 7.3 防火墙体系结构 7.4 防火墙的构成
计算机网络(第 6 版) 第 6 章 应用层 青岛理工大学通信与电子工程学院.
第6章 网络基础及Internet应用 6.1 计算机网络概述 6.2 计算机网络的组成 6.3 Internet基础
了 解 从 Internet IP 开 始.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
因特网 TCP/IP协议 IP路由技术 Internet接入技术 Internet服务.
思考 问题十:大学生如何提高英语能力? (听说读写能力).
实训十四、IE浏览器的基本应用.
第三章 管理信息系统的技术基础 主要内容: 数据处理 数据组织 数据库技术 4. 计算机网络.
第五章: 计算机网络基础与多媒体计算机.
了 解 Internet 从 ip 开 始.
海信FW3010PF防火墙介绍 北京海信数码科技有限公司
第2章 计算机网络体系结构 教学目标: 通过本章的学习,了解计算机网络体系结构和各个层次的相关协议,理解接口和服务等概念。掌握ISO/OSI模型和TCP/IP模型的各个层次及其所实现的功能。掌握IP地址的功能和划分,并对子网掩码和下一代互联网IPv6有相应的了解。
Socket.
教学目的:通过本章的学习大家要掌握端口 教学重点:端口的分类的两大类,静态端口 教学难点:几种常见的端口.
本章导语 第六章 计算机网络基础 本章目录 本章重点  开始学习 思考问题.
第7章 计算机网络基础.
学习目标: 1)理解包和包过滤 2)理解包过滤的方法 3)设置特殊的包过滤规则
網路概論.
教师:陈有为 TCP/IP与Internet(A) 教师:陈有为
郵件伺服器 MS 系列.
华南师范大学 防火墙 华南师范大学
第3讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
第 16 章 Internet架構.
TCP和UDP基本原理.
網路服務 家庭和小型企業網路 – 第六章.
计算机网络技术基础 任课老师: 田家华.
电子邮件系统基本协议介绍 北京春笛信息技术有限公司.
TCP/IP Protocol Suite TCP/IP協定 第二組 投影片製作by簡嘉宏 綦凱宏 林睿敏 滕孟哲.
第五讲 计算机网络应用 谢华成 副教授.
第 2 章 TCP / IP 簡介.
TCP/IP基本原理 第九章 文件传输.
網路概論 第11章 SMTP、POP3與IMAP通訊協定.
《计算机网络 --基于因特网的信息服务平台》 (第2版)
考试题型 填空题(30) 选择题(20) 名词解释(10) 问答题(24) 计算题(16) 附加题(30) 成绩核算:
OSI七層架構 OSI階層 負責的工作 應用層 表達層 會議層 傳輸層 網路層 資料鏈結層 實體層 將應用程式所送出的訊息轉成字元資料
7.7 Internet的基本服务功能 随着Internet的飞速发展,目前Internet上的各种服务已多达上万种,其中大多数服务是免费的。随着Internet商业化的发展趋势,它所能提供的服务将会进一步增多。 7.7.1 WWW服务 WWW(World Wide Web)的中文名为万维网,它的出现是Internet发展中的一个里程碑。WWW服务是Internet上最方便与最受用户欢迎的信息服务类型,它的影响力已远远超出了专业技术范畴,并已进入电子商务、远程教育、远程医疗与信息服务等领域。
第2讲 网络安全协议基础 此为封面页,需列出课程编码、课程名称和课程开发室名称。
網路應用 電子郵件系統 & 廣告信件攔截系統.
第12章 计算机病毒防范技术 本章学习目标: 掌握病毒的分类与特征 掌握病毒检测与防范的基本知识 了解计算机病毒防范技术的发展趋势
第4章 TCP/IP应用层常用协议 4.1 Telnet 协 议 4.2 文件传输协议FTP 4.3 电子邮件的工作原理及其协议
輔 導 業 務 承 辦 人 : 施 新 藤.
輔 導 業 務 承 辦 人 : 施 新 藤.
Network Application Programming(3rd Edition)
個人電腦與網路 1.個人電腦IP設定 自動取得IP與固定IP IP登錄系統與IP自動分配系統 固定IP申請 IP衝突處理
1.4 计算机网络体系结构与协议 引言 网络系统的体系结构 网络系统结构参考模型ISO/OSI
2019/5/3 JAVA Socket(UDP).
電子郵件 Chapter 認識電子郵件 10-2 認識 Windows Mail 10-3 郵件的傳送與接收 10-4 回信
第10讲 Web服务.
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
Internet课程设计 教师:陈 妍 朱海萍 西安交通大学计算机系
第 16 章 POP3.
第7章 Internet的应用.
網路基本概念及IE應用 趙涵捷.
Presentation transcript:

基于WinSock的邮件系统 1 设计目标: 1.1 SMTP发送邮件服务器(c语言) 1.2 POP3接受邮件服务器(c语言) 1.3 php WebMail客户端

2 相关技术介绍: 2.1 TCP/IP协议 2.1.1 发展至今最成功的通信协议,它源于20世纪60年代末美国政府资助的一个分组交换网络研究项目,到20世纪90年代已经发展成为计算机之间最常用的组网协议。它允许分布在各地的装着完全不同的系统的计算机互相通信。它是一个真正的开放系统,该协议的定义及多中实现可以通过多途径无偿得到。随着pc的普及,tcp/ip以其开放的特点,成为了internet的基础,该广域网(WAN)把全世界数以百万的电脑连接在了一起。 2.1.2 TCP/IP结构,如下图:

各种应用层协议 TCP UDP IP 设备驱动程序及接口卡 应用层 传输层 网络层 链路层 2.1.3 各层功能概述: (1)链路层:有时被称作数据链路层或网络接口层,通 常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡,它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。该层包含的协议有:ARP(地址转换协议)和RARP(反向地址转换协议).

(2)网络层:有时又被称为互连网层,负责分组在网络中的活动,包括ip(网际协议)、ICMP(Internet互连网控制报文协议)以及IGMP(Internet组管理协议)。 (3)传输层:该层主要为两台主机的应用程序提供端到端的数据通信,它分为两个不同的协议:TCP(传输控制协议)和UDP(用户数据报协议)。TCP提供端到端的质量保证的数据传输,该层负责数据的分组,质量控制和超时重发等,对于应用层来说,就可以忽略这些工作。UDP则只提供简单的把数据从一端发送到另外一端,至于数据是否到达或按时到达、数据是否损坏都必须由应用层来做。这两种协议各有用途,前者可用于面向连接的应用,而后者则在及时性服务中有着重要的用途,如网络多媒体通信等。

(4)应用层:该层负责处理实际的应用程序细节,包括大家十分熟悉的Telnet(电子公告版),HTTP(World Wide Web服务),SMTP(简单邮件传输协议),FTP(简单文件传输协议)和SNMP(简单网络管理协议)等著名协议。 Web服务器 http协议 TCP tcp协议 IP Ip协议 以太网驱动程序 令牌环网驱动程序 令牌环 路由器 以太网

2.2 winsock网络编程技术 2.2.1 Winsock的启动和终止: 由于Winsock的服务是以动态链接库Winsock Dll形式实现的,所以必须先调用WSAStartup函数对Winsoc Dll进行初始化,协商Winsock的版本支持,并分配必要的资源。如果在调用Winsock函数之前,没有加载winsock库,则会返回SOCKET_ERROR错误,在应用程序关闭套接字后,还应调用WSACleanup函数终止对Winsock Dll的使用,并释放资源,以备下次使用. 2.2.2 错误检查和控制: 错误检查和控制对于Winsock应用程序是至关重要的,不成功的Winsock调用返回的最常见的值是SOCKET_ERROR,它是值为-1的常量。如果错误发生了,可以用WSAGetLastError函数来获得一段代码,这段代码明确地表明错误的原因。:

2.2.3 Winsock编程模型: socket() 服务器 bind() listen() accept() 阻塞,等待客户数 connect() 客户机 建立连接 write() read() 请求数据 处理服务请求 应答数据 close()

2.3 windows多线程编程技术 2.3.1 多线程技术介绍: 在Windows的一个进程内,包含一个或多个线程,线程是指进程的一条执行路径,它包含独立的堆栈和CPU寄存器状态,每个线程共享所有的进程资源,包括打开的文件,信号标识及动态分配的内存等等,一个进程的所有线程使用同一个32位地址空间,而这些线程的执行由系统调度程序控制,调度程序决定哪个线程可执行以及什么时候执行。线程具有优先级别,优先权低的线程必须等到优先权较高的线程执行完任务后再执行,在多处理器的机器上,调度程序可将多个线程放到不同的处理器上去运行,这样就可使处理器的任务平衡,也提高了系统的效率。进程的主线程在任何需要的时候都可以创建新的线程,当线程执行完任务后,自动终止线程,当进程结束后,所有的线程都终止。

3 SMTP服务器概要设计 3.1本服务器实现的命令集: 3.2 SMTP服务器工作流程图: 2.3.2线程的创建和终止线程: Win32函数库中提供了多线程控制的操作函数,包括创建线程、终止线程、建立互斥区等。首先,在应用程序的主线程或其他活动线程的适当地方创建新的线程,创建了新线程后,则该线程就开始启动执行了当线程函数返回后,线程自动终止,如果线程在执行中终止的话,则可以调用函数实现,相关函数等请查看论文 3 SMTP服务器概要设计 3.1本服务器实现的命令集: HELO,MAIL FROM,RCPT TO,DATA,RSET,NOOP,QUIT,HELP 3.2 SMTP服务器工作流程图:

3.2.1 SMTP服务器主线程流程: 3.2.2 SMTP服务器客户服务线程流程: smtp服务器主线程开启端口25,开始监听 一个客户发起连接请求要求服务 服务器开启一个新线程为该客户服务 是否已经达到最大连接数MAX_CONNECTION_NUM 否 向该用户发送连接数过多信息,并关闭相应连接 是 3.2.2 SMTP服务器客户服务线程流程:

根据id号将客户登录信息记入System.log日志文件 读取客户发送命令并处理命令 返回客户处理结果 3.2.3 SMTP服务器客户端命令处理流程: 读入客户输入的第一条命令 不是 是HELO吗 响应503,并读入下条命令 响应250欢迎信息

处理MAIL FROM命令 否 下条命令为MAIL FROM? 是 下条命令为RCPT TO? 处理RCPT TO 命令 下条命令为DATA? 处理DATA命令 下条命令为REST? 处理REST命令 下条命令为NOOP? 下条命令为HELP? 下条命令为QUIT? 处理NOOP命令 处理HELP命令 处理QUIT命令 向客户输出502 命令不可实现,并读入下条信息

3.2.3 SMTP服务器各个命令详细处理流程:(见论文) 4 POP3服务器概要设计 4.1本服务器实现的命令集: USER PASS DELE LIST LOOP RETR RSET STAT UIDL QUIT 4.2 pop3服务器工作流程图: 4.2.1 pop3服务器主线程流程图: pop3服务器主线程开启端口110,开始监听 一个客户发起连接请求要求服务

4.2.2 pop3服务器客户服务线程流程: 服务器开启一个新线程为该客户服务 是否已经达到最大连接数MAX_CONNECTION_NUM 向该用户发送连接数过多信息,并关闭相应连接 是 4.2.2 pop3服务器客户服务线程流程: 获得客户服务id号 根据id号将客户登录信息记入System.log日志文件 读取客户发送命令并处理命令 返回客户处理结果

4.2.3 pop3服务器客户端命令处理流程: ① 读入客户输入的下一条命令 是 处理USER命令 命令为USER? 否 处理PASS命令 命令为STAT? 处理STAT命令 命令为DELE? 处理DELE命令 命令为LIST 命令为RETR 处理LIST命令 处理RETR命令

4.2.3 pop3服务器各个命令详细处理流程:(见论文) ① 命令为RSET? 命令为RSET? ① 是 处理RSET命令 否 是 命令为UIDL 处理UIDL命令 否 是 命令为LOOP? 处理LOOP命令 否 是 命令为QUTI? 处理QUIT命令 否 向客户输出命令不可实现 4.2.3 pop3服务器各个命令详细处理流程:(见论文)

5 SMTP服务器和POP3服务器详细设计(见论文) 6 测试 6.1 c语言编写的测试程序 6.1.1 SMTP服务器简单测试程序 (1)建立和SMTP服务器连接 (2)发送HELO命令并读取服务器响应信息 (3)发送MAIL FROM命令并回显服务器返回信息 (4)发送RCPT TO命令并回显服务器返回信息

(5)发送DATA命令通知 (6)发送邮件正文并回显服务器信息 (7)发送QUIT命令结束和服务器的会话 (8)SMTP测试程序命令行显示结果 6.1.2 POP3服务器测试程序

(1)建立和POP3服务器的连接 (2)发送”USER wangjianlin1985”命令并回显服务器信息 (3)发送”PASS 198517”命令并回显服务器信息 (4)发送”STAT”命令并回显服务器信息 (5)发送”LIST”命令并回显服务器信息 (6)发送”LIST 1”并回显服务器信息 (7)发送”RETR 1”并回显服务器信息 (8)发送”DELE 1”并回显服务器信息 (9)发送”QUIT”命令并回显服务器信息 (10)POP3服务器测试程序命令行运行效果

6.2 php Web客户端测试程序:

6.2.1 以用户名wangjianlin1985 密码198517登陆php邮件客户端 6.2.2进入邮件系统后显示如下:

6.2.3进入收件箱查看邮件列表:

6.2.4查看邮件详细内容:

6.2.5 给yangyanjie@linlin.com写一封邮件并抄送给 luotianjie@linlin.com:

6.2.6发送邮件后回显的执行命令状态

更多源代码资源:http://www.codefans.net/