21.1.2 SMTP协议与指令
SMTP是简单邮件传输协议的英文缩写,它可以实现客户端向服务器发送邮件的功能。SMTP分为命令头和信息体两部分。命令头主要完成客户端与服务器的连接、验证等,整个过程由多条命令组成。每个命令发到服务器后,由服务器给出响应信息,一般为3位数字的响应码和响应文本。不同的服务器返回的响应码是遵守协议的,但是响应正文则不必。每个命令及响应的最后都有一个回车符,这样使用fputs()和fgets()就可以进行命令与响应的处理。SMTP的命令及响应信息都是单行的。信息体则是邮件的正文部分,最后的结束行应以单独的句点“.”作为结束行。客户端常用的SMTP指令如下所示。
❑HELO hostname:表示通信开始。
❑MAIL FROM<sender_address>:告诉服务器发信人的地址。
❑RCPT TO<receiver_address>:告诉服务器收信人的地址。
❑DATA:所发送电子邮件本身,且最后要以只含有.的特殊行结束。
❑RESET:表示取消刚才的指令,重新开始。
❑VRFY:校验账号是否存在。
❑QUIT:退出连接,通信结束。
下面所示是服务器端SMTP主要的响应消息。
❑220:表示服务就绪,在socket连接成功时,即返回此信息。
❑221:表示正在处理。
❑250:表示请求邮件动作正确,即完成HELO、MAIL FROM、RCPT TO和QUIT指令执行成功后返回此信息。
❑354:表示开始电子邮件数据的输入,以应为句点“.”结束。
❑500:表示语法错误,命令不能识别。
❑550:表示命令不能执行,邮箱无效。
❑552:表示由于磁盘空间不足,中断处理。
本节简单介绍了SMTP协议,理解这些内容有助于本章后续将要讲述的使用PHP发送邮件的实现方法。
共有条评论 网友评论