SMTP 独立于特定的传输子系统,且只需要可靠有序的数据流信道支持。 SMTP 重要特性之一是其能跨越网络传输邮件,即“SMTP 邮件中继”。通常,一个网络可以由公用互联网上 TCP 可相互访问的主机、防火墙分隔的 TCP/IP 网络上 TCP 可相互访问的主机,及其它 LAN/WAN 中的主机利用非 TCP 传输层协议组成。使用 smtp ,可实现相同网络上处理机之间的邮件传输,也可通过中继器或网关实现某处理机与其它网络之间的邮件传输。
在这种方式下,邮件的发送可能经过从发送端到接收端路径上的大量中间中继器或网关主机。域名服务系统(DNS)的邮件交换服务器可以用来识别出传输邮件的下一跳 IP 地址。
协议结构
SMTP 命令是发送于 smtp 主机之间的 ASCII 信息,可能命令如下所示:
什么是SMTP命令和应答?
SMTP客户使用命令把邮件信息传送到服务器。共有4个字母组成,例如MAIL命令传送发件人信息,DATA传送邮件内容等.服务器使用应答对此回应,由3个数字后面附上简单的文字说明组成,例如"250 OK" 表示同意客户发来的命令
命令 描述
DATA 开始信息写作
EXPN <string> 在指定邮件表中返回名称
HELO <domain> 返回邮件服务器身份
HELP <command> 返回指定命令中的信息
MAIL FROM <host> 在主机上初始化一个邮件会话
NOOP 除服务器响应确认以外,没有引起任何反应
QUIT 终止邮件会话
RCPT TO <user> 指明谁收到邮件
RSET 重设邮件连接
SAML FROM <host> 发送邮件到用户终端和邮箱
SEND FROM <host> 发送邮件到用户终端
SOML FROM <host> 发送邮件到用户终端或邮箱
TURN 接收端和发送端交换角色
VRFY <user> 校验用户身份
smtp 命令包括:
HELO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
EHLO 向服务器标识用户身份。发送者能欺骗,说谎,但一般情况下服务器都能检测到。
MAIL FROM 命令中指定的地址是发件人地址
RCPT TO 标识单个的邮件接收人;可有多个 RCPT TO;常在 MAIL 命令后面。
DATA 在单个或多个 RCPT 命令后,表示所有的邮件接收人已标识,并初始化数据传输,以 CRLF.CRLF 结束
VRFY 用于验证指定的用户/邮箱是否存在;由于安全方面的原因,服务器常禁止此命令
EXPN 验证给定的邮箱列表是否存在,扩充邮箱列表,也常被禁用
HELP 查询服务器支持什么命令
NOOP 无操作,服务器应响应 OK
RSET 重置会话,当前传输被取消
QUIT 结束会话
smtp协议博大精深,涉及到服务器传输之间的协议通讯,而思威推出的smtp邮件中继,更是帮助许多企业通过smtp协议,解决了海外邮件退信的难题,而这个复杂的传输过程,完全是封装的,用户只需要知道,邮件在几秒内传输过去了,却不知道这传输的过程中,经过了多么复杂的对话。
TCP/IP协议是基于通讯的一套协议,其家族成员非常的多,以后我们慢慢了解。
- 原文转自思威