文档介绍:第10章 电子邮件协议与编程
本章首先介绍电子邮件系统的构成和工作原理,然后分析简单邮件传送协议SMTP,接着叙述RFC822规定的纯文本电子邮件信件的格式,详细说明了MIME多媒体邮件格式扩展,分析了接收电子邮件的POP3邮局协ed-path)转发。
354 启动邮件输入,要求邮件文本要用<CRLF><CRLF>结束。
421 服务不可使用,关闭传输通道。
450 没有执行请求的邮箱操作,因为信箱不可用。
整理课件
451 请求的操作已经终止,因为在处理的过程中出现了错误。
452 请求的操作没有发生,因为系统的存储空间不够,
500 语法错误,命令不可识别。
501 参数或变元中存在着语法错误。
502 命令不能实现。
503 错误的命令序列
504 命令的参数不能实现。
550 请求的操作不能发生,信箱不可用。
551 用户不在本地,请尝试发送到前向路径(forwaed-path)。
552 请求的邮件操作终止,超出存储分配。
553 请求的操作不能执行,因为信箱语法错误。
554 事务失败。
整理课件
SMTP的会话过程
SMTP客户与SMTP服务器的会话过程分为三个阶段,先举例说明。以下每行前面的C代表SMTP客户发送的命令,S代表服务器发回的响应。每行//后面的内容是注释。
C:HELO YE //你好!我是YE。
S:250 YE HELLO ,pleased to meet you //你好!YE,很高兴见到你,有事吗?
C:MAIL FROM:******@ //我想发信,我的地址是******@。
S:250 <From:******@>,Sender, accepted //行!有信你就发吧。
整理课件
C:RCPT ******@ //我的信要发给******@。
S:250 < ******@ >, Recipient ok //行!已经准备好。
C:DATA //我要发信件的内容了。
S:354 Enter mail, end with <CRLF>.<CRLF> //发吧!结尾标志是两个回车换行符夹个英文句点。
C:(客户端按照电子邮件的格式发送邮件内容)
C:(邮件内容发送完毕,发送结束标志crlf & . & crlf)//我的信已经发完了
S:250 ok, message saved //好的,你的信已经存储了。
C:QUIT //再见
S:221 See you in cyberspace //再见
整理课件
在上面的对话过程中,粗体字部分是发送邮件的客户端软件发送的内容,其他部分是SMTP服务器的应答内容。从中可以明显看出SMTP会话具有以下特点:
(1)会话的过程采用交互式的请求应答模式,客户发送命令,服务器回送应答。
(2)客户发送的命令和服务器回送的应答都是纯文本形式,有一定格式。
(3)针对客户的每个命令,服务器总要返回一定的响应码,表示服务器是否接受或执行了客户端命令。
(4)会话过程有一定的顺序
整理课件
使用Winsock来实现电子邮件客户与服务器的会话
(1)启动SMTP服务器,在指定的传输层端口监听客户端的连接请求,为SMTP服务器保留的端口是25。
(2)客户端设置Winsock连接的IP地址或域名,指定端口号,主动发出连接请求,连接到SMTP服务器。比如,,监听端口是25。
(3)服务器接收客户端的连接请求,并发回响应。客户端应收到类似220 BigFox ESMTP service ready这样的信息, 这就说明客户端已经与服务器建立TCP/IP连接,成功地实现了第一步。
整理课件
(4)客户端和服务器分别向对方发送数据。
(5)客户端或服务器分别读取自己缓冲区中的数据。
(6)以上两步是SMTP会话的主要部分,要按照SMTP协议的规定,按照一定顺序,客户向服务器发送命令,服务器向客户发送应答,以上两步要多次重复。
(7)会话完毕,关闭客户端和服务器之间的连接。
整理课件
电子邮件信件结构详述
Internet文本信件的格式标准-- RFC822
在电子邮件系统的环境中,电子邮件信件是它传递的对象。最早规定电子邮件信件内容结构