小樱知识 > 生活常识怎么样发邮件(普通邮件怎么发送)

怎么样发邮件(普通邮件怎么发送)

提问时间:2022-06-02 08:49:30来源:小樱知识网


我们经常使用电子邮件客户端,如Foxmail和Outlook来发送和接收电子邮件。每个人都应该知道电子邮件协议的基本知识。发送邮件是通过SMTP协议完成的,接收邮件是通过POP3协议完成的。由于工作原因,作者对邮件协议的通信过程进行了完整的分析。这里对邮件协议的通信过程进行梳理,巩固对通信协议的理解。

协议是什么?

我曾经做过一个基于UDP字节序列的应用:两个进程[一个用Java开发,一个用C++开发]之间,通过逐个解析UDP包中的字节数据来完成通信服务,最小的业务数据单位是比特。

大概的过程是这样的:

循环读取UDP数据包

先取出第一个字节。

读取该字节的前两位数据,代表某个业务类型。

接下来的6位代表服务数据的总长度。

在第二个字节后循环数据,直到达到总长度。

很多年过去了,那个应用的具体功能已经忘了,但是UDP字节数据的分析过程还是很清晰的。这让我明白了什么是协议。它实际上是一个基于简单处理规则的通信协议,可以看作是一个自定义的应用层协议。

这个可以扩展到OSI七层模型中的其他协议,类似于这个简单的协议,但是通信规则更复杂!

SMTP协议基础

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

相关文章