SMTP协议及常见指令介绍

什么是SMTP协议?

SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,是一种广泛应用于互联网电子邮件系统中的应用层协议,负责在不同网络节点间可靠传输电子邮件。SMTP的主要功能是在发送方邮件服务器和接收方邮件服务器之间传递邮件消息,确保电子邮件能够从发件人邮箱成功送达至收件人邮箱。

SMTP协议特点

**👉 TCP/IP基础:**SMTP运行在TCP/IP协议之上,使用固定的端口号25(默认SMTP端口)或者587、465(提交SMTP端口,用于用户代理发送邮件)进行通信。

**👉 可靠性:**SMTP设计时考虑了邮件传输的可靠性和效率,采用命令-响应机制,允许重试和错误恢复,保证邮件即使在网络不稳定的情况下也能最终送达。

**👉 中继:**SMTP支持邮件中继,这意味着邮件可以从一台邮件服务器转发到另一台邮件服务器,直到邮件到达最终的目标邮件服务器,这使得电子邮件能在全球范围内自由流动。

**👉 认证与安全:**SMTP原始版本没有内置加密或身份验证机制,但后来出现了扩展如STARTTLS(在传输层提供安全套接字层加密)和SMTP-AUTH(提供用户名和密码认证)。此外,为了增强安全性,现在许多邮件服务器还支持使用SSL/TLS加密的465端口进行SMTP通信。

SMTP工作流程

✅ 客户端(邮件用户代理软件或邮件客户端)通过SMTP连接到本地邮件服务器。

✅ 发送方邮件服务器与接收方邮件服务器建立SMTP会话,协商传输细节并传输邮件内容。

✅ 邮件头包括发件人、收件人、抄送、密送等信息,邮件体则包含实际的消息内容。

✅ 收件人邮件服务器收到邮件后,可能存储邮件到收件人的邮箱,或者如果收件人不在本地,则继续进行邮件中继。

✅ 邮件投递通知:SMTP还可以用来查询邮件状态报告(DSN)以及回执请求,不过这些功能并非所有邮件服务器都支持。

SMTP发信流程图

SMTP协议常见指令

SMTP协议命令集包括一组用于控制邮件传输过程的命令,以下是一些基本的SMTP命令及其作用:

**👉 EHLO / HELO:**扩展的问候语,用于标识发送方主机并声明支持ESMTP扩展命令。HELO是SMTP最初的问候命令,EHLO是它的扩展版本,在支持ESMTP的服务器上通常优先使用。

**👉 MAIL FROM:**初始化邮件传输,告知接收方服务器邮件发送者的地址。这个命令后是发件人的电子邮件地址。

**👉 RCPT TO:**指定邮件的单一接收者。可以多次使用此命令来添加多个收件人。

**👉 DATA:**表示接下来的数据行将构成邮件的实际内容,包括邮件头和主体。邮件数据由一个终止的.(点)行(即.)来标记结束。

**👉 NOOP:**执行无操作,主要用于保持连接活跃或测试服务器响应。

**👉 QUIT:**结束SMTP会话,释放连接。

**👉 AUTH (ESMTP扩展):**在支持身份验证的SMTP服务器上进行身份验证,机制可以是PLAIN、LOGIN、CRAM-MD5等多种形式。

**👉 STARTTLS (ESMTP扩展):**请求升级到加密连接,以便在不安全的网络上传输邮件时保护数据安全。除此之外,还有其他一些较少用到或特定情况使用的命令,例如HELP获取帮助信息,或是各种参数设置命令。随着SMTP的发展,更多的扩展命令被引入以满足更复杂的安全和管理需求。

SMTP命令示例

参考来源:SMTP协议及常见指令介绍 | MailABC邮件知识百科

相关推荐
白太岁1 天前
Muduo:(3) 线程的封装,线程 ID 的获取、分支预测优化与信号量同步
c++·网络协议·架构·tcp
白太岁1 天前
Muduo:(2) EPollPoller 实现 epoll 封装、 fd 事件监听与事件通知
网络·c++·网络协议·tcp/ip
执行部之龙1 天前
HTTP常见面试题总结
网络·网络协议·http
tod1131 天前
Reactor反应堆模式
网络·网络协议·tcp/ip·reactor·多路转接·tcpdump
白太岁2 天前
通信:(3) 高并发网络通信:epoll + 边沿触发 + 非阻塞 IO + tcp
c语言·网络·c++·网络协议·tcp/ip
duration~2 天前
DHCP 协议详解
网络·网络协议·tcp/ip
孫治AllenSun2 天前
【Dubbo】高性能的 RPC
网络协议·rpc·dubbo
8125035332 天前
计算机网络全栈连载计划
linux·网络·网络协议·计算机网络
Libraeking2 天前
02 深度剖析:MCP 协议底层的 JSON-RPC 机制与生命周期
网络协议·rpc·json
NEXT063 天前
TCP 与 UDP 核心差异及面试高分指南
前端·网络协议·面试