如何发送邮件(如何发送普通邮件)
我们经常使用电子邮件客户端,如Foxmail和Outlook来发送和接收电子邮件。每个人都应该知道电子邮件协议的基本知识。发送邮件是通过SMTP协议完成的,接收邮件是通过POP3协议完成的。由于工作原因,作者对邮件协议的通信过程进行了完整的分析。这里对邮件协议的通信过程进行梳理,巩固对通信协议的理解。
协议是什么我曾经做过一个基于UDP字节序列的应用:两个进程[一个用Java开发,一个用C++开发]之间,通过逐个解析UDP包中的字节数据来完成通信服务,最小的业务数据单位是比特。
大概的过程是这样的:
这个可以扩展到OSI七层模型中的其他协议,类似于这个简单的协议,但是通信规则更复杂!
SMTP 协议基础SMTP被称为“简单邮件传输协议”。这是来自百度百科的解释:
SMTP是一个相对简单的基于文本的协议。在其上指定一个或多个消息的接收者(在大多数情况下,它被确认存在),然后消息文本将被传输。您可以通过telnet程序简单地测试SMTP服务器。对于SMTP TCP端口25,要决定给定域名的SMTP服务器,需要MX(邮件交换)DNS。
让我们来看看SMTP的状态代码和命令集:
SMTP的状态代码和命令集
接下来,我们来看看Foxmail的邮件的包捕获分析。在消息中,状态码是邮件服务器响应的内容,命令由客户端发起。
认证客户端发起SMTP通信以连接到邮件服务器。这是我截获的解析过的信息:
沟通过程
这里使用的关键命令是EHLO和认证登录,用于启动会话和认证。客户端连接到服务器后的通信过程如下:
服务器验证回复
数据发送数据传输结果
发送消息正文的过程:
了解这个过程后,如果工作中需要沟通,可以参考网络协议的设计思路。实现基于Socket的通信服务应该不复杂!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)