1、第4章 POP3客户机程序设计,基础知识 例题分析 练习题,基础知识,电子邮件的基本概念 电子邮件的工作原理 邮件地址与邮件格式 POP命令与响应信息,电子邮件的基本概念,电子邮件服务称为E-mail服务,它是指用户通过Internet收发电子形式的邮件,电子邮件的工作原理(1),简单邮件传输协议(SMTP,Simple Mail Transfer Protocol):邮件发送协议 邮局协议(POP,Post Office Protocol) :邮件接收协议 交互式邮件访问协议(IMAP,Interactive Mail Access Protocol) :邮件接收协议,电子邮件的工作原理(2
2、),电子邮件是一种有连接的服务,采用的传输层协议是TCP协议,电子邮件的工作原理(3),电子邮件的工作过程,电子邮件的工作原理(4),邮件客户机程序的基本功能 书写与发送邮件 接收、转发、回复与删除邮件 邮箱与通讯薄管理,邮件地址与邮件格式(1),电子邮件地址格式:用户名主机名 用户名是用户在邮件服务器中的邮箱名,它在同一邮件服务器中是唯一的 主机名是邮箱所在邮件服务器名,用来标识邮件服务器所在域的位置,邮件地址与邮件格式(2),电子邮件包括2部分:邮件头(Mail Header)与邮件体(Mail Body) 邮件头由邮件的相关信息构成,部分信息由系统自动生成,例如发信人(From)、发送时
3、间(Data)等;其它信息由发件人输入,例如收信人(To)、邮件主题(Subject)与抄送人地址(Cc)等 邮件体是要发送的邮件正文部分,邮件地址与邮件格式(3),多用途Internet邮件扩展(MIME,Multi-purpose Internet Mail Extensions),POP命令与响应信息(1),POP客户机与服务器之间传输控制信息,用于完成某个POP操作 POP命令:POP客户机向服务器发送的操作请求 POP响应:POP服务器根据操作情况向客户机返回的信息,POP命令与响应信息(2),POP命令的标准格式:命令名 命令名是对该命令的英文描述缩写,例如USER是用户名的缩写
4、参数是完成命令使用的附加信息,例如USER的参数为具体的用户名 所有命令由回车(CR)与换行(LF)符表示结束 基本的POP命令包括:USER、PASS、STAT、LIST、RETR、DELE、RSET与QUIT,POP命令与响应信息(3),POP响应的标准格式:响应码 描述信息 响应码是对响应信息的字符串标识,例如 +OK表示成功,-ERR表示失败 描述信息是对响应码的文字描述,USER命令成功的描述是valid,USER命令失败的描述是invalid,例题设计要求(1),编写一个POP客户机程序,具体要求如下 要求实现的程序为图形化界面,可以输入POP服务的相关信息(包括POP服务器名、用
5、户名与密码),输出交互过程中的POP命令与响应信息,以及从POP服务器的邮箱中获得的邮件信息 要求实现USER、PASS、STAT、RETR与QUIT命令。点击“Connect”按钮,实现USER与PASS命令;点击“Receive”按钮,实现STAT与RETR命令;点击“Quit”按钮,实现QUIT命令,例题设计要求(2),程序图形界面,关键问题分析(1),建立TCP连接 POP客户机调用socket()函数建立套接字 POP客户机填充服务器的套接字地址 POP客户机调用connect()函数请求与服务器建立连接 POP客户机接收与分析服务器返回的响应信息,关键问题分析(2),登录POP服务
6、器 登录POP服务器使用USER与PASS命令,分别用来输入用户名与密码 USER与PASS命令按规定顺序出现 POP客户机向服务器发送USER命令 POP客户机向服务器发送PASS命令,关键问题分析(3),接收邮箱中的邮件 STAT命令用来返回邮箱的统计信息,包括邮件数量与字节总数 RETR命令用来返回邮箱中的指定邮件,包括邮件头与邮件正文,关键问题分析(4),退出POP服务器 POP客户机向服务器发送QUIT命令 断开POP客户机与服务器之间的控制连接 释放控制连接使用的套接字,练习题设计要求(1),编写一个POP客户机程序,具体要求如下 要求实现的程序为图形化界面,可以输入POP服务的相关信息(包括POP服务器名、用户名与密码),输出交互过程中的POP命令与响应信息,以及从POP服务器的邮箱中获得的邮件信息 要求实现USER、PASS、STAT、RETR、DELE与QUIT命令。点击“Connect”按钮,实现USER与PASS命令;点击“Receive”按钮,实现STAT与RETR命令;点击“Delete”按钮,实现DELE命令;点击“Quit”按钮,实现QUIT命令,练习题设计要求(2),程序图形界面,