您的位置:图文专栏 > 技术教程 > Iphone教程 >

SMTP是什么,SMTP是什么协议

发布时间:2023-02-11 16:01:07

SMTP是什么,SMTP是什么协议

在发送邮件时,通常会看到需要先同意一些协议才能操作,有人想知道SMTP是什么协议。那SMTP是什么?

SMTP是什么?

SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP服务器则是遵循SMTP协议的发送邮件服务器,用来发送或中转发出的电子邮件。

相较于POP3而言,SMTP确实比较简单。这里的简单并不是指SMTP的命令比POP3少,而是指SMTP的命令是有序的,而POP3的命令是无序的,理解这一点很重要。

也就是说SMTP的命令是要组合在一起才能完成一次邮件发送任务,单独调用每个命令的意义不大

。POP3命令则不同,LIST、STAT、UIDL、TOP、RETR、DELE等命令都可以独立使用,比如用LIST命令查看邮件清单,然后用RETR命令接收邮件。

简单的另一层含义是:就socket编程而言实现发送数据要比实现接收数据简单点。

比如接收数据时要判断数据是否接收完毕。如果一条数据以回车换行结束,就需要判断是否接收到了"\r\n",从而确保读取到一条完整的消息体。而发送数据则不需要考虑上述问题,你可以按照自己的节奏发送数据,可以一次将整个消息体发送出去,也可以不用考虑服务器的死活一个字节一个字节发送数据,直至将整条消息发送完毕。

换句话说,接收数据要以流的方式进行,而不是简单的开辟一个缓冲区,进行一次recv操作。

虽然大部分情况下这种方式也没有问题,比如写个Demo程序,但如果要让你的网络程序非常健壮的话,最好以流的方式进行读取。因为并不是每次对方都会按照你期望的方式发送数据给你,比如,你开辟了1024字节缓冲区用于接收网络数据,但对方可能一次只给你发送一个字节,或者发出了1025个字节。

SMTP和HTTP协议一样都属于请求应答式协议,也就是一问一答,客户端发送命令后,服务器返回响应内容。

SMTP的响应格式和HTTP协议的基本一样,都是响应码+响应描述。响应码用三位数字表示,空格后则是响应信息的描述,只是HTTP协议会多一个版本信息。

这种一问一答式协议,在HTTP协议上体现的并不是很明显,只有HTTP连接设置为

Keep-Alive

时,你才有机会使用GET或POST命令反复与服务器进行交互,否则只有一次问答的机会。

本文以华硕天选2为例适用于Windows 11系统

以上就是57自学网小编给大家带来的关于“SMTP是什么”的全部内容了,了解更多智能资讯尽在57自学网(www.57zxw.com)!

上一篇: 荣耀80怎么设置人脸识别,荣耀80设置人脸识别在哪里

下一篇: 75英寸的电视长宽各是多少厘米,75寸电视长宽尺寸