国学经典,永久流传《诗经朗诵全集》
《诗经朗诵全集》带你领略国学经典,永久咏传。...
2023-07-31
我们经常使用电子邮件客户端,如Foxmail和Outlook来发送和接收电子邮件。每个人都应该知道电子邮件协议的基本知识。发送邮件是通过SMTP协议完成的,接收邮件是通过POP3协议完成的。由于工作原因,作者对邮件协议的通信过程进行了完整的分析。这里对邮件协议的通信过程进行梳理,巩固对通信协议的理解。
我曾经做过一个基于UDP字节序列的应用:两个进程[一个用Java开发,一个用C++开发]之间,通过逐个解析UDP包中的字节数据来完成通信服务,最小的业务数据单位是比特。
大概的过程是这样的:
循环读取UDP数据包
先取出第一个字节。
读取该字节的前两位数据,代表某个业务类型。
接下来的6位代表服务数据的总长度。
在第二个字节后循环数据,直到达到总长度。
很多年过去了,那个应用的具体功能已经忘了,但是UDP字节数据的分析过程还是很清晰的。这让我明白了什么是协议。它实际上是一个基于简单处理规则的通信协议,可以看作是一个自定义的应用层协议。
这个可以扩展到OSI七层模型中的其他协议,类似于这个简单的协议,但是通信规则更复杂!
SMTP被称为“简单邮件传输协议”。这是来自百度百科的解释:
SMTP是一个相对简单的基于文本的协议。在其上指定一个或多个消息的接收者(在大多数情况下,它被确认存在),然后消息文本将被传输。您可以通过telnet程序简单地测试SMTP服务器。对于SMTP TCP端口25,要决定给定域名的SMTP服务器,需要MX(邮件交换)DNS。
让我们来看看SMTP的状态代码和命令集:
SMTP的状态代码和命令集
接下来,我们来看看Foxmail的邮件的包捕获分析。在消息中,状态码是邮件服务器响应的内容,命令由客户端发起。
客户端发起SMTP通信以连接到邮件服务器。这是我截获的解析过的信息:
沟通过程
这里使用的关键命令是EHLO和认证登录,用于启动会话和认证。客户端连接到服务器后的通信过程如下:
服务器回复220状态码以通知客户端它准备好了;
向客户端发送EHLO命令;
服务器回复250,表示欢迎;
服务器再回复一堆250(对应中间步骤);
客户端身份验证登录身份验证已启动;
服务器334等待客户端发送认证信息;
客户端发送认证信息的密文数据,进行两次密文通信;
回复235服务器认证成功,认证过程完成。
认证成功后,客户端将发件箱和所有收件箱地址发送给服务器,服务器验证后回复250 OK。
服务器验证回复
数据传输结果
发送消息正文的过程:
客户端发送数据命令;
回复服务器354状态码,通知客户端可以发送邮件内容;
客户端开始发送消息正文;
服务器端回复250;
客户端发送退出命令以结束会话;
服务器回复221,告知客户端它正在关闭传输信道。
这就是上面邮件的完整过程,像客户端和服务器之间的调用空。每一步都回答的有条不紊。这么看,发现通信协议还挺有意思的。这大概就是应用层协议的大致思路。定义业务规则和状态代码,按照双方约定的流程进行通话。
了解这个过程后,如果工作中需要沟通,可以参考网络协议的设计思路。实现基于Socket的通信服务应该不复杂!
以上内容就是为大家推荐的怎么样发邮件(普通邮件怎么发送)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.xiaoyin02.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:怎么样发邮件(普通邮件怎么发送)
本文地址:https://www.xiaoyin02.com/shcs/261132.html
相关文章
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)